返回列表 1 和列表 2 中的项目匹配的列表
假设我有 2 个 List
List1 和 List2,如下所示:
List 1:
[ID:1, Name:"item1"]
[ID:2, Name:"item2"]
[ID:3, Name:"item3"]
[ID:4, Name:"item4"]
List 2:
[ID:2, Name:"item2"]
[ID:3, Name:"item3"]
[ID:5, Name:"item5"]
[ID:6, Name:"item6"]
如何获取列表仅包含两个列表中的对象?使用上面的例子,我想返回:
[ID:2, Name:"item2"]
[ID:3, Name:"item3"]
修改原来的列表就可以了。最好的方法是什么?
Let's assume I have 2 List<T>
List1 and List2 that look like this:
List 1:
[ID:1, Name:"item1"]
[ID:2, Name:"item2"]
[ID:3, Name:"item3"]
[ID:4, Name:"item4"]
List 2:
[ID:2, Name:"item2"]
[ID:3, Name:"item3"]
[ID:5, Name:"item5"]
[ID:6, Name:"item6"]
How can I get a list that contains only the objects that are in both lists? Using the example above, I want to return:
[ID:2, Name:"item2"]
[ID:3, Name:"item3"]
Modifying the original lists is OK. What's the best way to do this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
是最简洁的。但请记住,它使用的是默认的相等比较器,它可能适合您,也可能不适合您。如果没有,您可以提供自己的:
Is the most succinct. However keep in mind it is using the default equality comparer which may or may not work for you. If not, you can provide your own:
如果列表中没有重复项,您可以执行以下操作:
编辑:
正如 @Matt Greer 指出的那样,您将需要一个自定义相等比较器才能按您的预期工作。
If there are no duplicates in the list you can do this:
Edit:
As @Matt Greer pointed out you will need a custom equality comparer for this to work as you would expect.
与 jQuery 一样,答案始终是 LINQ!
假设列表包含实际引用的副本。如果没有,则执行以下操作:
Like jQuery, the answer is always LINQ!
Assuming the list contains a copy of the actual reference. If not, then do:
这里使用lua代码:
我对C#不太熟悉。
Using lua code here:
I'm not too familiar with C#.