名单< INT>使用LINQ过滤名单、LT、INT、GT

2023-09-03 20:33:08 作者:半面泪妆眷卿三世

我有一个包含ID值例如,它包含了一个列表对象: 1,2,10,1,23,11,1,4,2,2 ..等我需要找出多少次1,2,......等已发生 在C#中使用LINQ

I have a List object which contains Id values for example it contains: 1,2,10,1,23,11,1,4,2,2,.. etc I need to find out how many times "1","2",... etc have occured using Linq in C#

好心帮。

推荐答案

这是pretty的简单使用Enumerable.GroupBy:

That's pretty simple using Enumerable.GroupBy:

var grouped = list.GroupBy(x => x);

foreach (var group in grouped)
{
    Console.WriteLine("{0} appears {1} times", group.Key, group.Count());
}

或者:

var query = list.GroupBy(x => x, (x, g) => new { Key = x, Count = g.Count() }));

foreach (var result in query)
{
    Console.WriteLine("{0} appears {1} times", result.Key, result.Count);
}

(所不同的只是,当我们把组到结果,真的。)

(The difference is just in when we transform the group into a result, really.)