[英]C# LINQ - Group by
I would like to Sum grouped items.我想对分组项目求和。 I would like to do keep simple LINQ syntax.
我想保持简单的 LINQ 语法。
What I need to fix in the code to get items for key.我需要在代码中修复以获取密钥项目。 I am trying like "g[g.Key].Count()", which doesn't work.
我正在尝试像“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
returns IEnumerable
of IGrouping<TKey,TElement>
which implements IEnumerable<T>
so you can just do g.Count()
: GroupBy
返回IGrouping<TKey,TElement>
的IEnumerable
,它实现了IEnumerable<T>
所以你可以只做g.Count()
:
var groups = groupedOrd
.Select(g => new Group { GroupId = g.Key, Count = g.Count() } )
.ToList();
Also your Group.Count
property is a string for some reason, so you will need to change it to int
or do g.Count().ToString()
由于某种原因,您的
Group.Count
属性也是一个字符串,因此您需要将其更改为int
或执行g.Count().ToString()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.