使用特定比较规则的集合运算
我有两个列表:
List<User> collection1 = new List<User>();
List<User> collection2 = new List<User>();
1) 我必须使用 LINQ 获取两个列表共有的所有项目。但是,User
类有很多属性,我只想比较 FirstName
和 LastName
。
2) 如何使用相同的比较规则获取 collection1
中的项目而不是 collection2
中的项目?
I have two lists:
List<User> collection1 = new List<User>();
List<User> collection2 = new List<User>();
1) I have to get all items common to both of the lists using LINQ. However, the class User
has a lot of properties and I just want to compare FirstName
and LastName
.
2) How can I get the items in collection1
but not in collection2
using the same comparison rule?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
对于第一个问题使用 Enumerable.Intersect第二个是Enumerable.Except。也就是说:
当然,这里我假设
UserEqualityComparer
实现IEqualityComparer
如下:Use Enumerable.Intersect for the first question and Enumerable.Except for the second. To wit:
Here, of course, I am assuming that
UserEqualityComparer
implementsIEqualityComparer<User>
like so: