我使用了LINQ语法,我获取了列的总和,但我希望得到另一列包含特定值的列的总和。
这是我的语法:
var sum = dt.AsEnumerable().Sum(dra => dra.Field<int>(3));
这里,dt是数据表,3是列索引。可数据表数据可以是:
a b c d
1 4 6 7
2 0 7 5
2 7 8 6
3 6 9 3
3 5 1 6
对于where条件,数据表列索引为2。
如何应用 WHERE 条件?
答案 0 :(得分:10)
var sum = dt.AsEnumerable()
.Where(r => r.Field<int>(2)==value)
.Sum(r => r.Field<int>(3));
答案 1 :(得分:2)
var sum = dt.AsEnumerable().Where(dra => ???).Sum(dra => dra.Field<int>(3));
答案 2 :(得分:1)
private long getSumFiled(DataTable dt, string sumFiled, string whereField,int intStatus)
{
long sum = dt.AsEnumerable()
.Where(r => r.Field<int>(whereField) == intStatus)
.Sum(x => x.Field<Int64>(sumFiled));
return sum;
}