一组的Linq总数
本文关键字:Linq 总数 一组 | 更新日期: 2023-09-27 18:14:53
我有一个Person列表,每个人都有一个Color。名称
我需要得到一个简单的对象,比如 "Blue", 50
"Green", 70
等List<Person> people....;
people.GroupBy(p=>p.Color.name) ?????
使用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()});