我正在编写一个用于统计的小应用程序。此应用程序的一个功能是确定包含 100 个元素的 Array
中随机生成的数字的频率。
到目前为止,我设法生成了一个二维Array
,我用数字 0-100 填充了它(这些是另一个 Array< 中随机生成的数字的最大值和最小值
)。
我想用基于索引的频率填充这个数组。
像这样:
//Array for random numbers
int[] randomNumbers = new int[10] {2, 3, 4, 5, 5, 2, 8, 9, 3, 7};
//Two-dimensional array for holding frequency of each unique number
int[,] frequency = new int[2,101];
for (int i = 0; i <= 100; i++)
{
frequency[0, i] = i;
}
频率数组生成良好。但我不知道从这里去哪里。如何将每个唯一数字的频率添加到数组中?我试过这个:
for (int i = 0; i < randomNumbers.Length; i++)
{
frequency[1, i] = frequency[1, i] + 1;
}
但它只是连续地用一个填充频率数组。
最佳答案
GroupBy
使这变得非常简单。
var frequencies = randomNumbers.GroupBy(n => n)
.Select(group => new
{
Number = group.Key,
Frequency = group.Count()
});
关于c# - 将一个数组中数字的频率写入另一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16964630/