小编JBi*_*ord的帖子

比较两个数据集 - 查找更改 - LINQ

我已经在互联网上试图找到解决方案,也许我不会以正确的方式解决这个问题.

我需要比较两个数据集,结构相同,并希望找到新的和更改的对象(使用LINQ).

使用我在CodeProject中找到的内容,我能够将已更改的项目列表汇总在一起,但这是通过对每个列进行硬编码(并且会有很多)并检查相同的值来完成的:

var updRec = from u in updated
             join o in orig
                on u.KeyValue equals o.KeyValue
             where
                (o.Propery1 != u.Propery1) ||
                (o.Propery2 != u.Propery2)
             select new record
             {
                 KeyValue = u.KeyValue,
                 Propery1 = u.Propery1,
                 Propery2 = u.Propery2 ,
                 RecordType = "mod" // Modified
             };
Run Code Online (Sandbox Code Playgroud)

我可以使用2件事的帮助:

  1. 是否有更有效的方法来遍历每个列,因为我计划添加更多需要比较的属性?必须有一种更好的方法来动态检查2个相同的数据集以进行更改.
  2. 我怎么能看到哪个属性发生了变化?例如,为所有不相同的项创建"Property,OriginalValue,UpdatedValue"列表?

希望这很好地解释了它.如果我没有正确地查看它,请随时指出处理此方案的其他方法.

c# linq

9
推荐指数
1
解决办法
1003
查看次数

标签 统计

c# ×1

linq ×1