检查两个列表的修改
我有两个两种不同类型的列表,它们具有以下共同属性。
Id
-->用于标识对应的对象
一堆其他Properties
ModificationDate
需要根据修改日期来比较这两个列表。如果修改了日期不同(第一个列表 ModificationDate
大于第二个列表的 ModificationDate
然后,如果该项目从第一个列表复制到第二个列表,则复制所有属性。
请让我知道最好的方法编辑
:第二。列表可能包含也可能不包含第一个列表的所有元素,反之亦然。我的第一个列表始终是源列表,因此如果某个项目存在于列表 1 中但不存在于列表 2 中,我们需要将其添加到列表 2 中。项目存在于列表 2 中但不在列表 1 中,然后将其从列表 2 中删除。
I have got two lists of two different type which has the following common properties.
Id
-->used to identify corresponding objects
Bunch of other Properties
ModificationDate
Need to compare these two lists based on Modification date.If the modified date is different (first list ModificationDate
greater than second list's ModificationDate
then, copy all the properties if that item from first list to second.
Please let me know the best way to do this.
EDITED:Second list may or maynot contain all elements of the first and vice versa.My first list is always the source list. so if an item is present in list 1 and not present in list 2 we need to add it in list 2. also if an item present in list 2 but in not in list 1 then remove it from list2.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
查找添加/删除的项目
如果
MyType
未实现IEquatable
,或者该实现不仅仅基于比较 id,您将需要创建一个IEqualityComparer< ;MyType>
:这将允许您执行以下操作:
查找修改的项目
Finding added/deleted items
If
MyType
does not implementIEquatable<MyType>
, or the implementation is not based solely on comparing ids, you will need to create anIEqualityComparer<MyType>
:Which will allow you to do:
Finding modified items
这可能会有所帮助。 Linq 库有很多不错的函数,例如 except、Intersection。
http://msdn.microsoft.com/en-us/library/bb397894.aspx
This might be able to help. The Linq library has lots of decent functions, such as Except, Intersection.
http://msdn.microsoft.com/en-us/library/bb397894.aspx
提供的链接有助于比较两个不同类型的列表
比较集合在.Net中
The provided link was helpful in comparing two lists of different types
Comparing Collections in .Net