繁体   English   中英

C# LINQ - 分组

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

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