C# - 从DataTable中删除具有相同列值的行

dar*_*nte 3 c# linq datatable filtering

我有一个DataTable看起来像这样:

 ID   Name    DateBirth
.......................
 1     aa      1.1.11
 2     bb      2.3.11
 2     cc      1.2.12
 3     cd      2.3.12
Run Code Online (Sandbox Code Playgroud)

哪个是删除具有相同ID的行的最快方法,以获得类似的内容(保留第一个出现,删除下一​​个):

 ID   Name    DateBirth
.......................
 1     aa      1.1.11
 2     bb      2.3.11
 3     cd      2.3.12
Run Code Online (Sandbox Code Playgroud)

我不想双重传递表行,因为行号很大.我想尽可能使用一些LinQ,但我想这将是一个大问题,我必须使用比较器.

cuo*_*gle 10

您可以使用LINQ to DataTable,基于列进行区分ID,您可以在此列上进行分组,然后先选择:

  var result = dt.AsEnumerable()
                 .GroupBy(r => r.Field<int>("ID"))
                 .Select(g => g.First())
                 .CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)