【发布时间】:2021-05-31 10:44:42
【问题描述】:
这是我的模型:
public class EventModel
{
public DateTime? EVENT_DATE { get; set; }
public decimal? EVENT_TYPE { get; set; }
public string EVENT_DESCRIPTION { get; set; }
}
我将此课程填入ObservableCollection<EventModel>。当我这样做时,我也会深拷贝同一个集合。然后我想在以后的使用中比较这两个集合。
我最好使用 LINQ 来做到这一点,比如
bool are_same = collection1.OrderBy(i => i).SequenceEqual(
collection2.OrderBy(i => i));
这意味着需要对两个集合进行排序,然后相互比较以找出ALL PROPERTIES 中的差异。
有很多实现IComparable & IEqualityComparer 的示例,但我对我需要什么以及如何实现感到困惑。
如果有人能告诉我如何在 C# 中完成此操作,我将不胜感激。
【问题讨论】:
-
具体显示什么?发现差异?如何实现 IComparable/IEqualityComparer?比较集合时顺序是否重要?输出应该是什么?你能举一个输入/预期输出的例子吗?这里的最终目标是什么?
-
@JonasH,
collection1是绑定到 UI 的集合。collection2用于启用按钮以保存对数据库的更改。所以输出应该是一个boolean,表示集合中的任何属性是否发生了变化。项目总是在同一个位置(我认为),我从数据库中获取数据后立即深复制collection1。
标签: c# observablecollection iequalitycomparer icomparable