c#对比两个datatable的差异
时间: 2023-07-27 15:22:56 浏览: 168
datatable之间的比较
4星 · 用户满意度95%
你可以使用 C# 中的 DataTable 类的 Merge 方法来将两个 DataTable 对象合并为一个,然后使用 Select 方法筛选出其中的不同行。
以下是一个示例代码:
```csharp
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
// 填充 DataTable 对象
DataTable dtDiff = dt1.Clone();
dtDiff.Merge(dt1);
dtDiff.Merge(dt2);
var duplicates = dtDiff.AsEnumerable()
.GroupBy(r => r)
.Where(g => g.Count() > 1)
.Select(g => g.Key);
DataTable dtResult = dtDiff.Clone();
foreach (DataRow row in duplicates)
{
dtResult.Rows.Add(row.ItemArray);
}
```
在这个示例中,我们首先使用 Clone 方法复制了 dt1,然后使用 Merge 方法将 dt2 合并到 dtDiff 中。接着,我们使用 AsEnumerable 和 GroupBy 方法找出其中的重复行,最后将这些重复行添加到 dtResult 中。
请注意,这个示例假设两个 DataTable 对象的结构是相同的。如果两个 DataTable 对象的结构不同,则需要进行一些额外的处理来匹配它们的列。
阅读全文