我需要计算相当复杂的可膨胀数据结构的平均值。
我有var table1Sum
来自两个数据表。另一个var table2Sum
也从两个数据表连接起来。这两个表连接到第三个表中。
我需要将field3
的平均值分组为field1
和field2
,但在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)
相符。)
有人可以用正确的语法帮助我吗?
答案 0 :(得分:2)
您需要在过滤器后平均字段3
let field3Average = dg.Where(g => g.field3 > 0.0).Average(g => g.field3)