将 2 个列表与 Except() 方法进行比较,但它没有用
Compare 2 Lists with Except() Method but it didnt work
我想与 Except Method 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
uses the default equality comparer to compare values. So, if your checkpoint
class doesn't have an IEquatable
,您所有的 checkpoint
实例都将被读取为唯一的。
来自 .NET 文档:
If you want to compare sequences of objects of some custom data type, you have to implement the IEquatable<T>
generic interface in a helper class.
在 Enumerable.Except
文档(上面链接)中有关于如何创建 IEquatable 助手 class 的示例。
我想与 Except Method 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
uses the default equality comparer to compare values. So, if your checkpoint
class doesn't have an IEquatable
,您所有的 checkpoint
实例都将被读取为唯一的。
来自 .NET 文档:
If you want to compare sequences of objects of some custom data type, you have to implement the
IEquatable<T>
generic interface in a helper class.
在 Enumerable.Except
文档(上面链接)中有关于如何创建 IEquatable 助手 class 的示例。