一组的Linq总数

本文关键字:Linq 总数 一组 | 更新日期: 2023-09-27 18:14:53

我有一个Person列表,每个人都有一个Color。名称

我需要得到一个简单的对象,比如
 "Blue", 50
 "Green", 70

List<Person> people....;
people.GroupBy(p=>p.Color.name)    ?????

一组的Linq总数

使用Select

List<Person> people....;
people.GroupBy(p=>p.Color.name)
      .Select(g => new { Color = g.Key, Count = g.Count() });

您可以将new { Color = g.Key, Count = g.Count() }替换为任何您想要的输出,如"'"" + g.Key + "'", " + g.Count()以获得您在问题中所拥有的字符串列表。

使用GroupBy生成具有Key属性的对象和每个Group中的可枚举对象。Key可以是简单类型(如string),也可以是复杂对象(如Person)。

那么下面,对于每个Group,它将为您提供名称(x.Key)和该组中对象的计数(颜色名称)。

people.GroupBy(p=>p.Color.name).Select(x=>new {Color = x.Key, Count= x.Count()});