【发布时间】:2019-12-30 01:00:01
【问题描述】:
我想与“除方法 2”列表进行比较。对象存储在这些列表中。
如果我使用 except 方法,则不会过滤任何内容,尽管存在相同的对象。
我的目标:
我想要列表“chkpoints”中所有不在列表“chkpointslist”中的对象。
最好的方法是什么?或者我做错了什么?
List<checkpoint> chkpoints = new List<checkpoint>();
List<checkpoint> chkpointslist = new List<checkpoint>();
chkpointslist = database.loadChecklistpoints(checklistid);
chkpoints = database.loadCheckpoint(type);
chkpoints = chkpoints.Except(chkpointslist).ToList();
【问题讨论】:
-
checkpoint是否覆盖Equals和GetHashCode?如果不是,它将执行引用相等,这意味着具有相同值的类的两个实例将不相等。有Except的重载,您可以在其中传递IEqualityComparer<checkpoint>来告诉它如何确定两个checkpoint对象是否相等。
标签: c# list merge compare except