C#将不同数据从1个数据表复制到另一个数据表

时间:2013-07-08 17:08:28

标签: c# select datatable distinct copying

我有2个数据表,Tab1和Tab2。 Tab1是数据,Tab2是空的。

Tab1看起来像这样:
Col1 | Col2 | Col3 |钥匙|国家| Col ....
abc | xyz | 103 | AK1 | POL | .....
pol |男人| 1212 | AK2 | POL | ....
莫罗| kom | 11 | AK1 | POL | ....
bca | oni | 10A | AK1 | GER | ....
bca | oni | 10A | AK3 | GER | ....
al | 1n | zxc | AK2 | POL | ....

我需要按键和国家/地区选择不同的数据(键+国家/地区组合必须是唯一的)并将其放到Tab2。

如何在c#中完成? 我有很多行,所以我需要安静快速的方法来做它。

对于这个例子,结果应该是:
Col1 | Col2 | Col3 |钥匙|国家| Col ....
abc | xyz | 103 | AK1 | POL | .....
pol |男人| 1212 | AK2 | POL | ....
bca | oni | 10A | AK1 | GER | ....
bca | oni | 10A | AK3 | GER | ....

1 个答案:

答案 0 :(得分:2)

您可以对给定列上的项目进行分组,然后抓取每个组中的第一行(或最后一行或哪一行)。

secondTable = firstTable.AsEnumerable()
    .GroupBy(row => new
    {
        Key = row.Field<string>("Key"),
        Country = row.Field<string>("Country"),
    })
    .Select(group => group.First())
    .CopyToDataTable();