在C#中处理列表联合与重复

时间:2010-04-20 15:12:11

标签: c# list merge union duplicates

我试图了解如何处理两个可能有重复的列表的联合或合并。 例如,List1具有{A,B,C},List2具有{B,C,D}。 我尝试使用Union操作并得到一个包含值(A,B,C,D)的新列表。但是,我需要第二个列表中的B& C值,而不是第一个。 有没有办法指定union方法,它使用哪个重复值。

我现在使用的代码是

var newList = List1.Union<Object>(List2).ToList();

感谢您的帮助。 Javid

4 个答案:

答案 0 :(得分:7)

Union在逻辑上是一个设置操作。康卡特是你正在寻找的。

List1.Concat(List2)

答案 1 :(得分:2)

你能做到:

var newList = List2.Union<Object>(List1).ToList(); 

..因为反转他们可能会给你你需要的那些?

编辑:

这显然不起作用。对不起,我没有测试过,这只是对问题的第一反应。

怎么样,使用上面的反转符号,然后调用List.Sort()以按照你想要的顺序将它们恢复?它假设您有一个可以订购的属性,但如果有人没有提出更优雅的解决方案,您甚至可以创造一个属性。

答案 2 :(得分:0)

你试过吗

var newList = List2.Union<Object>(List1).ToList();

答案 3 :(得分:0)

您可以查看Joining您的列表。在该操作之后,您将为每个副本提供“连接”对象以进行检查...