[英]Linq Total of a Group
我有一个人员列表,每个人都有一个Color.Name
我基本上需要得到一个简单的对象,如:
"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中的对象的Enumerable的对象。 键可以是简单类型,例如string
也可以是复杂对象(例如Person)。
因此,对于每个组,下面将为您提供名称(x.Key)和该组中对象的计数(颜色名称)。
people.GroupBy(p=>p.Color.name).Select(x=>new {Color = x.Key, Count= x.Count()});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.