c#datatable表格去重
时间: 2023-12-15 22:06:18 浏览: 31
以下是C#中DataTable表格去重的两种方法:
1.使用LINQ进行去重
```csharp
// 假设dt为需要去重的DataTable
var distinctTable = dt.AsEnumerable().Distinct(DataRowComparer.Default).CopyToDataTable();
```
2.使用DataView进行去重并保留所有列
```csharp
// 假设dt为需要去重的DataTable,keyColumns为需要进行比较的列名数组
DataView dv = new DataView(dt);
string[] keyColumns = { "column1", "column2" }; // 假设需要比较的列为column1和column2
string distinctColumnName = "distinctColumn"; // 新增一列用于标记是否重复
dv.Table.Columns.Add(distinctColumnName, typeof(int));
foreach (DataRowView drv in dv)
{
string key = "";
foreach (string column in keyColumns)
{
key += drv[column].ToString();
}
if (key != "")
{
DataRow[] drs = dt.Select(string.Format("{0}='{1}'", string.Join("+", keyColumns), key));
if (drs.Length > 1)
{
drv[distinctColumnName] = 0;
}
else
{
drv[distinctColumnName] = 1;
}
}
}
dv.RowFilter = string.Format("{0}=1", distinctColumnName);
DataTable distinctTable = dv.ToTable();
```