使用LINQ的两个列表的Concat

时间:2013-03-20 12:08:08

标签: linq

我有两个列表list1和list2

List1包含

1   a
2   b
3   c
4   d

List2包含

3   c
4   d
5   e

我想使用LINQ

以下列表
1   a
2   b
3   c
4   d
5   e

4 个答案:

答案 0 :(得分:10)

List1.Concat(List2.Where(l2 => !List1.Contains(l2))).ToList()

答案 1 :(得分:4)

由于我在这里没有看到这个答案,我会发布它......

将两个列表合并在一起时删除重复项的最佳方法是Enumerable.Union

var foo = new List<char> { 'a', 'b', 'c', 'd' };
var bar = new List<char> { 'c', 'd', 'e' };

var result = foo.Union(bar).ToList();

其余的答案都有效,但Linq有一个内置的方法来做到这一点。

答案 2 :(得分:1)

var Lst = List1.Concat(List2.Where(l2 => List1.All(x => x.Id != l2.Id))).ToList();

答案 3 :(得分:0)

var listOne = new List<string>();            
var listTwo = new List<string>();

var merge   = new List<string>();

merge.AddRange(listOne.Concat(listTwo));