LINQ sum datatable列在哪里

时间:2015-04-21 03:51:51

标签: c# linq

我使用了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 条件?

3 个答案:

答案 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;
    }