LINQ Lambda - 查找一个列表中不存在于另一个列表中的所有 ID
我有两个对象集合(列表 list1 和列表 list2)。每个都有一个称为“ID”的属性。我知道 list2 总是比 list1 有更多的项目,我只需要一种简单的方法来使用 LINQ lambda 表达式获取 list2 中存在但不存在于 list1 中的所有项目的集合。
I have two collections of objects (List list1 and List list2). There is a property on each called "ID". I know that list2 will always have more items than list1, I just need an easy way to get a collection of all the items that exist in list2 but not list1 using LINQ lambda expressions.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您只需要项目的 ID,则 马克的回答会很好地解决这个问题。如果您需要返回项目本身(并且它们还没有合适的
Equals
实现),那么您可以尝试如下操作:If you only need the IDs of the items then Mark's answer will do the trick nicely. If you need to return the items themselves (and they don't already have a suitable
Equals
implementation) then you could try something like this:这将为您提供仅在 list2 中的 ID:
如果您的对象在具有相同 ID 时比较相等,那么您可以将其简化为:
This will get you the IDs that are only in list2:
If your objects compare equal when they have the same ID then you can simplify it to: