两个列表的非标准加入

时间:2014-09-12 10:12:33

标签: c# asp.net-mvc

我有两个列表: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] 

3 个答案:

答案 0 :(得分:1)

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

这将为您提供一个包含list1和list2中所有值的新列表。

答案 1 :(得分:1)

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

答案 2 :(得分: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