繁体   English   中英

LINQ集团合计

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM