如何获取C#中通用List中每个不同项的计数

时间:2015-01-25 16:06:28

标签: c# linq

我有这个列表。

List<int> numbers = new List<int>() { 1, 1, 2, 2, 3, 3, 4 };

我想得到另一个列表,列出该列表中每个不同项目的数量,所以像这样的2,2,2,1。我想通过使用foreach可以达到它,但它是否可能更容易(LINQ可能)?感谢。

1 个答案:

答案 0 :(得分:7)

var counts = numbers.GroupBy(x => x)
                    .Select(g => new { Number = g.Key, Count = g.Count() })
                    .ToList();

您也可以使用字典

代替匿名对象
var counts = numbers.GroupBy(x => x)
                    .ToDictionary(x => x.Key, x => x.Count());