繁体   English   中英

如何使用linq从let> 0的分组数据中计算平均值

[英]How to use linq to calculate average from grouped data where value > 0 using let

我需要计算可枚举数据的相当复杂的结构的平均值。

我有从两个数据表联接的var table1Sum 另一个var table2Sum也从两个数据表联接。 这两个表合并到第三表中。

我需要获取按field1field2分组的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.

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