我是C#的新手,希望我能在这个主题上得到一些帮助.我有一个包含元素的数组,我需要显示每个项目出现的次数.
例如,在[1, 2, 3, 4, 4, 4, 3],1出现一次,4出现三次,依此类推.
我做了以下但不知道如何把它放在foreach/if语句中......
int[] List = new int[]{1,2,3,4,5,4,4,3};
foreach(int d in List)
{
if("here I want to check for the elements")
}
Run Code Online (Sandbox Code Playgroud)
谢谢你,对不起,如果这是一个非常基本的...
Ree*_*sey 12
您可以通过Enumerable.GroupBy处理此问题.我建议查看Count和GroupBy上的C#LINQ示例部分以获取指导.
在您的情况下,这可以是:
int[] values = new []{1,2,3,4,5,4,4,3};
var groups = values.GroupBy(v => v);
foreach(var group in groups)
Console.WriteLine("Value {0} has {1} items", group.Key, group.Count());
Run Code Online (Sandbox Code Playgroud)
您可以保留Dictionary找到的项目及其相关计数.在下面的示例中,dict[d]通过其值引用元素.例如d = 4.
int[] List = new int[]{1,2,3,4,5,4,4,3};
var dict = new Dictionary<int, int>();
foreach(int d in List)
{
if (dict.ContainsKey(d))
dict[d]++;
else
dict.Add(d, 1);
}
Run Code Online (Sandbox Code Playgroud)
当foreach循环终止时,每个唯一值将有一个条目dict.您可以通过访问获取每个项目的计数dict[d],其中d是原始列表中的某个整数值.