我有一个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())
});