提问者:小点点

在C#中如何检查一个项目在list中存在的次数?[副本]


您知道如何检查一个项在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”。你知道怎么做吗?请帮帮我。


共1个答案

匿名用户

您可以创建一个分组,然后使用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。

在线尝试