用LINQ得到分组值和的平均值

  • 本文关键字:和的 平均值 LINQ c# linq
  • 更新时间 :
  • 英文 :


我有一个IEnumerable字段名称(字符串)和金额(ulong)。我想获得一个LINQ查询,按名称对这些元素进行分组,然后获得它们的和和该和的平均值。

为了得到分组元素的和,我做了如下操作

collection.GroupBy(x => x.Name).Select(x => new { Key = x.Key, Sum = x.Sum(e => Int32.Parse(e.Amount.ToString()))});

它工作得很好,但是现在有没有一种方法可以得到每组的平均值,而不需要单独的LINQ或方法或其他什么?

我试了几种方法,但没有一种是正确的。我所做的最好的结果是得到每个金额的平均值:/

您应该能够向匿名类型添加另一个成员以返回平均值,类似于返回总和的方式。

collection.GroupBy(x => x.Name)
.Select(x => new { 
Key = x.Key,
Sum = x.Sum(e => Int32.Parse(e.Amount.ToString()),
Avg = x.Average(e => Int32.Parse(e.Amount.ToString())
});

最新更新