2014-09-12 80 views
-1

我有两个列表:list1list2。我想以不影响list1中的值的方式加入列表,即使它包含重复的值。但是,在追加list2的值时,不应删除重复值。两个列表的非标准加入

我试过Union,它将清除所有的值,并消除我在list1中的重复值。

例如

list1 = [a, b, c, c, d, e] 
list2 = [a,c,f,g] 
my required solution 
list3=[a, b, c, c, d, e, f, g] 
+0

您可以发布相关的代码,这样每个人都可以看看你要去的地方错了 – Izzy 2014-09-12 10:14:37

+0

['.Concat()']( http://msdn.microsoft.com/ru-ru/library/bb302894(v=vs.110).aspx) – 2014-09-12 10:15:11

+0

http://stackoverflow.com/questions/1528171/joining-two-lists-together Can你澄清你的问题?我似乎无法捡起来。 – 2014-09-12 10:15:24

回答

1
var MyList = List1.Concat(List2.Except(List1).ToList()); 
+0

工作正常。感谢名单 – niXy 2014-09-12 10:55:50

1
var list3 = list1.ToList(); 
foreach (var val in list2) 
{ 
    if (!list3.Contains(val)) 
     list3.Add(val); 
} 

这将给您提供从列表1和List2所有值的新名单。

+0

这不是问题的作者想要的。 – Dirk 2014-09-12 10:23:14

+0

@Dirk,这是他要求的。 – 2014-09-12 10:26:45

+0

是的,你编辑它之后。 – Dirk 2014-09-12 10:29:02

0

你会想使用这样的

var list1 = new List<int> {1, 2, 3, 3}; 
var list2 = new List<int> {1, 2, 3, 4, 5, 3}; 
var list3 = list1.Concat(list2.Except(list1)); // 1, 2, 3, 3, 4, 5