【问题标题】:Creating a datatable with only the rows that match a specific column name prefix using Linq in c#在 c# 中使用 Linq 创建仅包含与特定列名前缀匹配的行的数据表
【发布时间】:2014-01-07 19:48:47
【问题描述】:

比如我的数据表是这样的

A_1 A_2 A_3 ..... A_15 B_1.....B_10 C_1....C_10 x y z........ K
1 2 3.........4

我正在尝试为 A、B 和 C 创建单独的数据表,它根据列前缀选择行,而且我只需要新数据表中的行值。

var query = (from dc in table.Columns.Cast<DataColumn>()
             where dc.ColumnName.Contains(prefix)
             select table.Rows);

如果以上正确,如何继续将行(在查询中)插入到新数据表中?

【问题讨论】:

  • 这个问题对我来说似乎难以理解。似乎您正在要求某人完成您的代码以完成您想要的。也许显示您尝试过的代码将有助于更好地解释问题。
  • 我认为您的查询不会起作用,因为您的“选择”语句是错误的......您正在从“表”中选择行。

标签: c# linq datatable


【解决方案1】:

您可以创建DataView,然后复制到DataTable,选择符合您条件的列:

string[] cols = (from dc in table.Columns.Cast<DataColumn>()
                 where dc.ColumnName.Contains(prefix)
                 select dc.ColumnName)
                .ToArray();

DataView view = new DataView(table);
DataTable selected = view.ToTable(false, cols); // false ==> include "duplicate" rows

【讨论】:

  • 非常感谢这个帮助!
猜你喜欢
  • 1970-01-01
  • 2017-04-04
  • 2022-01-10
  • 2016-04-14
  • 2013-09-06
  • 1970-01-01
  • 2021-12-05
  • 2021-10-04
  • 1970-01-01
相关资源
最近更新 更多