我有两个列表,其中一个有5个元素,另一个有4个元素。它们有一些相同的元素,但它们也有不同的元素。我想创建一个包含不同元素的列表。我该怎么办?
注意:5个元素列表是我的主要列表。
答案 0 :(得分: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);
在这种情况下,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));
输出2,5和7。
答案 1 :(得分:1)
如果您感到好奇,与此相反的是相交
string[] collection1 = new string[] { "1", "7", "4" };
string[] collection2 = new string[] { "6", "1", "7" };
var resultSet = collection1.Intersect<string>(collection2);
foreach (string s in resultSet)
{
Console.WriteLine(s);
}