【问题标题】:How get count of each distinct item in generic List in C# [duplicate]如何在 C# 中获取通用列表中每个不同项目的计数 [重复]
【发布时间】:2015-03-24 04:10:48
【问题描述】:

例如,我有这个列表。

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

我想获得另一个列表,其中包含该列表中每个不同项目的计数,因此类似于 2,2,2,1。我想可以通过使用 foreach 来实现它,但是有可能以更简单的方式(可能是 LINQ)吗?谢谢。

【问题讨论】:

  • 按列表元素进行分组

标签: c# linq


【解决方案1】:
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());

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-06-25
    • 2014-02-16
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-10-05
    • 2013-11-16
    • 2022-01-23
    相关资源
    最近更新 更多