将数据表的部分合并为一个

时间:2011-07-27 17:30:40

标签: c# datatable c#-2.0

我有一堆数据表(在列表中),全部有50列。

假设我想构建一个包含20-29和40-49列的新数据表。 然后将每个数据表中的所有行复制到新数据表中。但只有那些选定的列。

DataTable.Merge()不起作用,因为我只想要列的一部分。

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:1)

我认为简单的旧的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);
    }
}

注意 我没有编译代码。