[英]How to use linq to calculate average from grouped data where value > 0 using let
我需要计算可枚举数据的相当复杂的结构的平均值。
我有从两个数据表联接的var table1Sum
。 另一个var table2Sum
也从两个数据表联接。 这两个表合并到第三表中。
我需要获取按field1
和field2
分组的field3
平均值,但是当field3 == 0.0
时,平均值计算不应考虑在内。
我试过了
var table3 = from d in table1sum.Concat(table2sum)
group d by new { d.field1, d.field2 } into dg
let field3Average = dg.Where(g => g.field3 > 0.0).Average()
select new
{
.....
};
但这不是计算平均值的正确语法。 我使用let
是因为稍后需要在linq查询的select new
部分中计算平均值。
( let averageWithZeros = dg.Average(g => g.field3)
可以很好地满足所有值的正常平均值。)
有人可以用正确的语法帮助我吗?
您需要将过滤器后的字段3平均
let field3Average = dg.Where(g => g.field3 > 0.0).Average(g => g.field3)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.