【问题标题】:LINQ: How to exclude data columns from DataTable.ItemArray query?LINQ:如何从 DataTable.ItemArray 查询中排除数据列?
【发布时间】:2011-06-19 17:13:56
【问题描述】:

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

有一个扩展方法可以给我一个特定的字段,例如Field<T>("Foo") 但我真正需要的是能够对所有字段进行求和除了字段 X、Y 和 Z。

【问题讨论】:

  • 不清楚您所说的“结果”是什么意思。你的意思是你想总结所有行中的所有列并得出一个数字?您是否想要一个返回每行中所有列的总和的枚举?您是否想简单地排除列出现在 Telerik 控件中您已使用名称标记此问题?
  • @Robert - 我正在寻找除两列(id 和 name)之外的所有行中所有列的总和。

标签: wpf linq gridview telerik


【解决方案1】:

你可以使用更多的 LINQ:

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

var sum = table.Columns.Cast<DataColumn>()
                       .Except(unwantedColumns)
                       .Select(c => row.Field<int>(c))
                       .Sum();

【讨论】:

    【解决方案2】:

    我认为您不能修改 DataRow 的列。不过,您可以修改 DataTable 的列。

    【讨论】:

    • 我相信你是对的,但是,我不是要修改,而是在这里查询值。本质上,我希望将网格中的所有值加起来以显示在总计单元格中,不包括两个特定列(id 和 name)。
    猜你喜欢
    • 2015-01-18
    • 1970-01-01
    • 2017-07-24
    • 1970-01-01
    • 2015-01-09
    • 1970-01-01
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多