怎么能用linq比较两个列表的项目?

cag*_*gin 6 c# linq

我有两个列表,其中一个有5个元素,另一个有4个元素.它们有一些相同的元素,但它们也有不同的元素.我想创建一个包含不同元素的列表.我该怎么做?

注意:5个元素列表是我的主要列表.

Øyv*_*hen 16

那这个呢?

var list1 = new List<int>( new []{1,2,3,4,5});
var list2 = new List<int>( new []{1,3,4});
var list3 = list1.Except( list2);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,list3仅包含2和5.

编辑

如果您希望两个集合中的元素都是唯一的,则以下代码应该足够:

var list1 = new List<int>( new []{1,2,3,4,5});
var list2 = new List<int>( new []{1,3,4,7});
var list3 = list1.Except(list2).Union(list2.Except(list1));
Run Code Online (Sandbox Code Playgroud)

将输出2,5和7.