c# 将一个datatable中A列与B列合并到新建的C列
时间: 2024-10-19 11:07:57 浏览: 22
要将C# `DataTable` 中的 A 列和 B 列合并到新的 C 列,可以按照以下步骤操作:
首先,假设你有一个 `DataTable` 叫做 `sourceTable`,其中包含两个想要合并的列,如 `ColumnA` 和 `ColumnB`。你可以创建一个新的 `DataTable`(例如 `mergedTable`)来存储结果:
1. **复制源表结构**[^1]:
```csharp
DataTable mergedTable = sourceTable.Copy();
```
2. **创建新的 C 列**:
如果你想要使用 `ColumnA` 和 `ColumnB` 的值拼接成一个新的字符串,可以这样做:
```csharp
DataColumn newColumn = new DataColumn("C", typeof(String)); // 创建一个字符串类型的C列
newColumn.Expression = "CONCAT(ColumnA, ColumnB)"; // 使用CONCAT函数合并A和B列
mergedTable.Columns.Add(newColumn);
```
3. **合并数据**:
然后遍历源表的每一行并添加合并后的值到新列:
```csharp
foreach (DataRow row in sourceTable.Rows)
{
string mergedValue = row["ColumnA"].ToString() + row["ColumnB"].ToString(); // 获取A和B列的值并拼接
row["C"] = mergedValue; // 将合并后的值设置为新列的新行值
}
```
4. **添加合并的行到新表**:
最后,由于我们已经修改了源表的行,可以直接将它们导入到新表中,因为`Copy()`方法会复制原始数据,而不会影响原始表的结构:
```csharp
foreach (DataRow dr in sourceTable.Rows)
{
mergedTable.ImportRow(dr);
}
```
现在,`mergedTable` 中就有了合并后的 C 列。
阅读全文