C# 两个数据表的唯一数据列比较
我有两个具有相同列设置的数据表。表“原件”用作与表“已编辑”进行比较的副本,表中包含的数据基本相同,但某些行可能已由用户编辑。 “编辑”表格可由用户在Excel中自由编辑,因此采用双表系统 这些表可能分别具有不同的主键。唯一的列值 编辑完成后,我需要比较两个表。 如果唯一列值已更改,我需要将该行视为新行,即使用INSERT而不是稍后对sql server的更新查询。 如果更改了除唯一列值以外的任何其他列值,将导致更新查询 我已经有了lambda表达式,假设unique列是表中的第一列C# 两个数据表的唯一数据列比较,c#,linq,lambda,C#,Linq,Lambda,我有两个具有相同列设置的数据表。表“原件”用作与表“已编辑”进行比较的副本,表中包含的数据基本相同,但某些行可能已由用户编辑。 “编辑”表格可由用户在Excel中自由编辑,因此采用双表系统 这些表可能分别具有不同的主键。唯一的列值 编辑完成后,我需要比较两个表。 如果唯一列值已更改,我需要将该行视为新行,即使用INSERT而不是稍后对sql server的更新查询。 如果更改了除唯一列值以外的任何其他列值,将导致更新查询 我已经有了lambda表达式,假设unique列是表中的第一列 var o
var oldRows original.AsEnumerable()
.Where(r=> !edited.AsEnumerable()
.Any(r2 => r[0].ToString().Trim().ToLower() == r2[0].ToString().Trim().ToLower()));
var newRows edited.AsEnumerable()
.Where(r=> !original.AsEnumerable()
.Any(r2 => r[0].ToString().Trim().ToLower() == r2[0].ToString().Trim().ToLower()));
然而,现在的要求已经改变为改变唯一列的计数和位置。
我可以用linq获得所有唯一的列,但无法真正解决如何连接这两个操作
var uniqueColumns from DataColumn c in original.Columns where c.Unique select c;
有没有人建议如何将其转化为表达式