我想与"方法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();
Enumerable.Except
使用默认相等比较器来比较值。因此,如果您的checkpoint
类没有IEquatable
,则所有checkpoint
实例都将被视为唯一实例。
从 .NET 文档:
如果要比较某些自定义数据类型的对象序列,则必须在帮助程序类中实现
IEquatable<T>
泛型接口。
有一些关于如何在Enumerable.Except
文档(上面链接(上创建 IEquatable 帮助程序类的示例。