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

use*_*587 4 c# union merge list duplicates

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

我现在使用的代码是

var newList = List1.Union<Object>(List2).ToList();
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.Javid

Jim*_*mmy 6

Union在逻辑上是一个集合操作.Concat是您正在寻找的.

List1.Concat(List2)
Run Code Online (Sandbox Code Playgroud)


Fio*_*ite 2

你可以这样做吗:

var newList = List2.Union<Object>(List1).ToList(); 
Run Code Online (Sandbox Code Playgroud)

..因为反转它们可能会给你带来你需要的东西?

编辑:

这显然行不通。抱歉,我没有测试过,这只是对问题的第一反应。

怎么样,使用上面的相反表示法,然后调用 List.Sort() 将它们恢复到您想要的顺序?它假设您有一个属性可供排序,但如果有人没有提出更优雅的解决方案,您甚至可以人为地创建一个属性。