[英]C# LINQ - Group by
我想对分组项目求和。 我想保持简单的 LINQ 语法。
我需要在代码中修复以获取密钥项目。 我正在尝试像“g[g.Key].Count()”,但它不起作用。
public class Order
{
public string Id { get; set; }
public string Name { get; set; }
public string Group { get; set; }
}
public class Group
{
public string GroupId { get; set; }
public string Count { get; set; }
}
**var groupedOrd = orders.GroupBy(f => f.Group);**
List<Group> groups = new List<Group>();
foreach(var g in groupedOrd)
{
groups.Add(new Group() { GroupId = g.Key, Count = g[g.Key].Count() });
}
GroupBy
返回IGrouping<TKey,TElement>
的IEnumerable
,它实现了IEnumerable<T>
所以你可以只做g.Count()
:
var groups = groupedOrd
.Select(g => new Group { GroupId = g.Key, Count = g.Count() } )
.ToList();
由于某种原因,您的Group.Count
属性也是一个字符串,因此您需要将其更改为int
或执行g.Count().ToString()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.