【发布时间】:2011-07-28 01:40:24
【问题描述】:
我有一堆数据表(在一个列表中),都有 50 列。
假设我想构建一个包含 20-29 和 40-49 列的新数据表。 然后将每个数据表中的所有行复制到新表中。但仅限于那些选定的列。
DataTable.Merge() 不起作用,因为我只想要列的子集。
实现这一目标的最佳方法是什么?
【问题讨论】:
我有一堆数据表(在一个列表中),都有 50 列。
假设我想构建一个包含 20-29 和 40-49 列的新数据表。 然后将每个数据表中的所有行复制到新表中。但仅限于那些选定的列。
DataTable.Merge() 不起作用,因为我只想要列的子集。
实现这一目标的最佳方法是什么?
【问题讨论】:
我认为在这些条件下,简单的普通 for 循环应该可以解决问题
DataTable table = new DataTable();
DataTable existing = listOfTables[0];
for(int i = 20; i < 30; i ++)
{
table.Columns.Add(existing.Column[i].Name;
table.Columns.Add(existing.Column[i + 20].Name;
}
foreach(DataTable table in listOfTables)
{
foreach(DataRow row in table.Rows)
{
DataRow newRow = table.NewRecord();
foreach(Column column in table.Columns)
{
newRow[column.Name] = row[column.Name];
}
table.Rows.Add(row);
}
}
注意 我还没有编译代码。
【讨论】: