C# 如何使用linq计算分组数据的平均值,其中值>;0使用let
我需要计算一个相当复杂的不可测数据结构的平均值 我有C# 如何使用linq计算分组数据的平均值,其中值>;0使用let,c#,linq,group-by,C#,Linq,Group By,我需要计算一个相当复杂的不可测数据结构的平均值 我有var table1Sum,它由两个数据表连接而成。另一个var table2Sum也从两个数据表中连接起来。这两个表被合并到第三个表中 我需要获得按field1和field2分组的field3的平均值,但当field3==0.0时,平均值计算不应计入在内 我试过了 var table3 = from d in table1sum.Concat(table2sum) group d by new { d.field1,
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查询的selectnew
部分中计算平均值
(所有值的正常平均值与let averageWithZeros=dg.average(g=>g.field3)
一致)
有人能帮我纠正语法吗?您需要在筛选后对字段3求平均值
let field3Average = dg.Where(g => g.field3 > 0.0).Average(g => g.field3)
您需要在平均值之前选择筛选后的字段3