10

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

3 回答 3

14
List1.Concat(List2.Where(l2 => !List1.Contains(l2))).ToList()
于 2013-03-20T12:09:58.303 回答
9

由于我在这里看不到这个答案,所以我将其发布...

将两个列表合并在一起时删除重复项的最佳方法是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 有一个内置的方法来做到这一点。

于 2017-01-18T06:07:26.033 回答
1
var Lst = List1.Concat(List2.Where(l2 => List1.All(x => x.Id != l2.Id))).ToList();
于 2013-03-20T14:19:26.987 回答