如何使用多个过滤器计算数据表?

时间:2017-05-19 11:52:59

标签: c# datatable

我想在datatable上对某列的值求和,其中列x等于值AND列y等于另一个值。当我按照以下方式过滤X列时,我可以实现这个:

dt.Compute("Sum([Cost])", "[COLUMNX] = 'blah'");  

这很好用,但我现在想要在过滤器中添加另一列,所以像dt.Compute("Sum([Cost])", "[COLUMNX] = 'blah'", "[COLUMNY] = 'blah'");

如何在两个不同的列上进行过滤。

1 个答案:

答案 0 :(得分:4)

您可以按照here

的说明使用dt.Compute("Sum([Cost])", "[COLUMNX] = 'blah' AND [COLUMNY] = 'blah'");
double sumCost = dt.AsEnumerable()
    .Where(r => r.Field<string>("COLUMNX")=="blah" && r.Field<string>("COLUMNY")=="blah")
    .Sum(r => r.Field<double>("Cost"));

或LInq-To-DataTable没有限制:

ng-repeat