C#比较两个DataTable表某列的差异详细代码
时间: 2023-09-23 18:03:47 浏览: 254
以下是比较两个DataTable表某列的差异的详细代码:
```csharp
// 假设有两个 DataTable 对象 dt1 和 dt2,它们都有名为 "Column1" 的列
// 获取 dt1 中的 "Column1" 列
var dt1Column1 = dt1.AsEnumerable().Select(r => r.Field<string>("Column1")).ToList();
// 获取 dt2 中的 "Column1" 列
var dt2Column1 = dt2.AsEnumerable().Select(r => r.Field<string>("Column1")).ToList();
// 获取 dt1 中有但是 dt2 中没有的值
var dt1NotInDt2 = dt1Column1.Except(dt2Column1).ToList();
// 获取 dt2 中有但是 dt1 中没有的值
var dt2NotInDt1 = dt2Column1.Except(dt1Column1).ToList();
// 输出结果
Console.WriteLine("dt1 中有但是 dt2 中没有的值:");
foreach (var value in dt1NotInDt2)
{
Console.WriteLine(value);
}
Console.WriteLine("dt2 中有但是 dt1 中没有的值:");
foreach (var value in dt2NotInDt1)
{
Console.WriteLine(value);
}
```
以上代码中,首先使用 `AsEnumerable` 方法将 DataTable 对象转换为 `IEnumerable<DataRow>` 对象,然后使用 LINQ 查询语句获取指定列的值,并将结果转换为 List 对象。接着使用 `Except` 方法获取两个 List 对象中不同的值,最后输出结果。
阅读全文