Wpf LINQ:如何从DataTable.ItemArray查询中排除数据列?

Wpf LINQ:如何从DataTable.ItemArray查询中排除数据列?,wpf,linq,gridview,telerik,Wpf,Linq,Gridview,Telerik,给定一个数据行集合,类型为DataRow的IEnumerable,我如何查询该集合以计算集合中所有值(即所有行中所有列的所有值)的总和,但两个特定列除外?在运行时之前,我只知道两列,我想排除这两列。我想把所有其他的都包括在总数中 有一种扩展方法可以给我一个特定的字段,例如字段(“Foo”),但我真正需要的是能够说除字段X、Y和Z之外的所有字段的总和。您可以使用更多LINQ: DataColumn[] unwantedColumns = { table.Column1, ... }; var s

给定一个数据行集合,类型为DataRow的IEnumerable,我如何查询该集合以计算集合中所有值(即所有行中所有列的所有值)的总和,但两个特定列除外?在运行时之前,我只知道两列,我想排除这两列。我想把所有其他的都包括在总数中

有一种扩展方法可以给我一个特定的字段,例如
字段(“Foo”)
,但我真正需要的是能够说除字段X、Y和Z之外的所有字段的总和

您可以使用更多LINQ:

DataColumn[] unwantedColumns = { table.Column1, ... };

var sum = table.Columns.Cast<DataColumn>()
                       .Except(unwantedColumns)
                       .Select(c => row.Field<int>(c))
                       .Sum();
DataColumn[]unwantedColumns={table.Column1,…};
var sum=table.Columns.Cast()
.除(未命名的列)
.Select(c=>row.Field(c))
.Sum();
您可以使用更多LINQ:

DataColumn[] unwantedColumns = { table.Column1, ... };

var sum = table.Columns.Cast<DataColumn>()
                       .Except(unwantedColumns)
                       .Select(c => row.Field<int>(c))
                       .Sum();
DataColumn[]unwantedColumns={table.Column1,…};
var sum=table.Columns.Cast()
.除(未命名的列)
.Select(c=>row.Field(c))
.Sum();

我认为您无法修改
DataRow
中的列。但是,您可以修改
数据表的列。

我认为您不能修改
数据行的列。您可以修改
数据表的列。

不清楚“结果”是什么意思。你的意思是要将所有行中的所有列相加,得出一个数字吗?是否需要返回每行中所有列之和的可枚举项?你想简单地将列排除在Telerik控件中吗?你用名称标记了这个问题?@Robert-我要查找所有行中所有列的总和,不包括两列(id和名称)。不清楚“结果”是什么意思。你的意思是要将所有行中的所有列相加,得出一个数字吗?是否需要返回每行中所有列之和的可枚举项?您想简单地将列排除在您用名称标记此问题的Telerik控件中吗?@Robert-我要查找所有行中所有列的总和,不包括两列(id和名称)。我相信您是对的,但是,我不想修改,而是在这里查询值。基本上,我希望将网格中的所有值汇总显示在一个总计单元格中,不包括两个特定列(id和名称)。我相信你是对的,但是,我不想修改,而是在这里查询值。基本上,我希望将网格中的所有值相加,显示在一个总计单元格中,不包括两个特定列(id和名称)。