您知道如何检查一个项在C#列表中存在的次数吗?我试过
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(1);
numbers.Add(2);
numbers.Add(2);
Console.WriteLine(numbers.Count);
但这是列表中的项目计数(4个项目),但我希望有两个“1”和两个“2”。你知道怎么做吗?请帮帮我。
您可以创建一个分组,然后使用LINQ:
Dictionary<int, int> numberFrequency = numbers
.GroupBy(n => n)
.ToDictionary(g => g.Key, g => g.Count());
然后要找出4发生了多少次,可以这样检查:
int toFind = 4;
if (!numberFrequency.TryGetValue(toFind, out int frequency))
{
frequency = 0;
}
Console.WriteLine($"{toFind} occurred {frequency} time(s).");
也可以循环通过:
foreach (KeyValuePair<int, int> kv in numberFrequency)
{
Console.WriteLine($"{kv.Key} occurred {kv.Value} time(s).");
}
GroupBy的文档
ToDictionary的文档
您可能还需要OrderBy或OrderByDescending。
在线尝试