c#.net 如何从数据集中删除重复的行

c#.net How can I removed duplicate rows from a DATASET

当我将数据写入 CSV 文件时,我需要从数据集中的表中删除包含列名称的重复行。有人知道我可以做到这一点的方法吗?

Column1 Column2 Column3
Value  Value     Value
Column1 Column2 Column3 <- dont need this again
Value  Value     Value

使用 LINQ。

var newtable = oldDS.Tables[0].AsEnumberable().Select(dr => dr).Distinct();

oldDS.Tables.Clear();
oldDS.Tables.Add(newtable.CopyToDataTable());

这个有效:

var distinctRows = ds.Tables[0].AsEnumerable().Distinct(DataRowComparer.Default);
var newDataTable = distinctRows.CopyToDataTable();

如果您只想使用字段的子集进行比较,您可以使用 morelinq 库(在 NuGet 上找到):

var distinctRows = ds.Tables[0].AsEnumerable().DistinctBy(x => new
            {
                Column1= x["column1"],
                Column2 = x["column2"]
            });