C#四个datatable中相同数据对应的数据合并到一张新表中
时间: 2024-01-21 13:17:22 浏览: 77
可以使用 LINQ 来实现这个需求。以下是一个示例代码:
```csharp
// 假设有四个 DataTable 分别为 dt1, dt2, dt3, dt4
// 合并后的 DataTable
DataTable mergedTable = new DataTable();
// 添加列
foreach (DataColumn column in dt1.Columns)
{
mergedTable.Columns.Add(column.ColumnName, column.DataType);
}
// 合并数据
var rows = dt1.AsEnumerable()
.Union(dt2.AsEnumerable())
.Union(dt3.AsEnumerable())
.Union(dt4.AsEnumerable())
.GroupBy(row => row.Field<string>("相同数据列"))
.Select(group =>
{
var newRow = mergedTable.NewRow();
foreach (DataColumn column in mergedTable.Columns)
{
newRow[column.ColumnName] = group.First()[column.ColumnName];
}
return newRow;
});
// 添加行
foreach (DataRow row in rows)
{
mergedTable.Rows.Add(row);
}
```
以上代码假设四个 DataTable 中有相同的数据列,你需要将其替换成实际的列名。此外,还需要根据实际情况调整代码。
阅读全文