我正在尝试将两行合并为一行。它们都在同一个数据库和表中。
示例:
column1 column2 column3 column4 column5 column6
row1 value value value null null null
row2 null null null value value value
我尝试使用table.Merge(table),但似乎没有做任何事情。如何合并这两行,以便它只是
column1 column2 column3 column4 column5 column6
row1 value value value value value value
答案 0 :(得分:1)
没有内置功能为您执行此操作。因此,您必须手动执行此操作。首先确定要合并的行,然后在列上运行以合并它们。
DataRow target = table.Rows[0];
DataRow source = table.Rows[1];
for (int i = 0; i < table.Columns.Count; i++)
{
target[i] = target[i] ?? source[i];
}
table.Remove(source);
上面的示例遍历两行的所有列,并从源中指定目标为空的值。合并后,它将删除源行。
答案 1 :(得分:1)
假设您有两个来自同一个DataTable的DataRows dr1
和dr2
,那么使用Linq
就可以直接使用:
var merged = dr1.ItemArray.Zip(dr2.ItemArray, (e1, e2) =>e1 ?? e2).ToArray();
dr1.ItemArray = merged;