【问题标题】:C# DataTable LINQ & GROUP BYC# DataTable LINQ 和 GROUP BY
【发布时间】:2010-11-06 17:18:45
【问题描述】:

我有一个有 20 列的 DataTable(我只需要其中的 3 列。)我需要对其执行以下查询,然后将结果另存为 array。我做了一些搜索,但我不知道如何执行数学运算。我知道应该使用 LINQ,但我没有得到任何结果。非常感谢任何帮助!

SELECT DISTINCT columnZ, (columnX + columnY) / 2 FROM DataTable

*EDIT - 更正 SQL 语句

【问题讨论】:

  • 这意味着什么?当您按 columnZ 分组时,您的 select 子句不能包含非聚合函数,具体取决于 columnZ 本身以外的列。您能向我们解释一下您要解决的更广泛的问题吗?
  • Group-by 是一个聚合函数;您需要采用 sum、min、max 等值才能使其有意义。
  • 好的,这个怎么样:SELECT DISTINCT columnZ, (columnX + columnY) / 2 FROM DataTable 我只想将第二列发送到数组

标签: c# .net linq datatable .net-3.5


【解决方案1】:

回答您的上一条评论(我建议您更新问题):

  var result = 
    (from row in dataTable.AsEnumerable()
     let average = ((double)row["columnX"] + (double)row["columnY"])/2
     select new 
     {
        ColumnZ = (string)row["columnZ"],
        Average = average
     }).Distinct();

使用您的实际数据类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-02-06
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多