C#相当新。有一个类的赋值,要求我们从用户输入的值生成一个数组。这部分完成并且工作完美。
现在数组已经完成,我需要能够在Console.WriteLine中显示数组中输入的每个不同的数字,以及该数字出现的次数,我对如何实现这一点感到有点迷失。
答案 0 :(得分:6)
您是否允许使用LINQ?如果是,请调查GroupBy
和Count()
。基本上有一个单行程可以在这里工作,但是因为它的功课我会让你自己解决细节...如果你遇到问题,请求更多的帮助。
答案 1 :(得分:5)
您可以创建一个字典,其中键是数字,值是数组中该特定数字的计数,然后在每次找到数字时增加字典中的值:
示例:
int[] arrayOfNumbers = new int[] { 1, 4, 2, 7, 2, 6, 4, 4, };
Dictionary<int, int> countOfItems = new Dictionary<int, int>();
foreach (int eachNumber in arrayOfNumbers)
{
if (countOfItems.ContainsKey(eachNumber))
countOfItems[eachNumber]++;
else
countOfItems[eachNumber] = 1;
}
此代码适用于所有C#版本,但如果您使用的是C#3或更高版本,则可以使用LINQ,正如其他人所建议的那样。 =)
答案 2 :(得分:0)
您可以使用LINQ Distinct()扩展方法。
http://msdn.microsoft.com/en-us/library/system.linq.enumerable.distinct.aspx
答案 3 :(得分:0)
foreach (int item in array)
{
Console.Write(item.ToString() + " ");
int frequency = 0;
for (int i = 0; i < array.Length; ++i)
{
if (array[i] == item) ++frequency;
}
Console.WriteLine(frequency.ToString());
}
肮脏而蛮力的方式。考虑到你的数组是一个“int”数组。否则,只需更改类型。
答案 4 :(得分:0)
如果没有LINQ,您可以跟踪您正在生成的数字。像Dictionary
这样的数据结构可以很好地工作,将数字映射到目前为止看到它们的次数。