提问人:Waves 提问时间:3/29/2022 更新时间:3/29/2022 访问量:171
使用 LINQ 分离出两个相同的集合,但不同的 ID 除外
Separate out two identical collections except for different ids with LINQ
问:
我正在尝试生成一种方法,该方法馈送两个数据库(.db)文件,将它们加载到包含各种字符串属性和唯一ID的对象中。
数据库文件是从 LiteDB 实例创建的,在 LiteDB 库方法下分配了一个唯一的 ID,如下所示:
Id = ObjectID.NewObjectId();
我正在尝试获取两个数据库集合之间不同的所有项目,但不幸的是,我尝试的任何 LINQ 查询都会失败,因为 ID 始终是唯一的,尽管对象中包含的所有其他值都是相同的。
我想执行一个 LINQ 查询,该查询将忽略对象中的 ID 字段,但对该对象中的所有其他属性进行比较,但我正在努力这样做
我最初的想法是使用
var differences = items1.Except(items2)
但是,由于 ID 不同,这会将所有项目填充到差异集合中。
关于如何排除 ID 比较的任何建议将不胜感激,该工具可用于数百万条记录,因此需要高效。
答:
2赞
Quacke
3/29/2022
#1
Except
具有接受 .可以在类中以忽略 ID 的方式实现此接口,然后将该类的实例传递给该方法。如果您需要有关如何实现 的参考,请参阅此示例。IEqualityComparer<T>
IEqualityComparer<T>
评论