Meh*_*ari 37
如果你的意思是除了交集(对称差异)之外的所有东西,你可以尝试:
var set = new HashSet<Type>(list1);
set.SymmetricExceptWith(list2);
Run Code Online (Sandbox Code Playgroud)
Ree*_*sey 17
你可以使用Except来获取除两个列表的交集之外的所有内容.
var differences = listA.Except(listB).Union(listB.Except(listA));
Run Code Online (Sandbox Code Playgroud)
如果你想获得除工会之外的所有东西:
var allButUnion = new List<MyClass>();
Run Code Online (Sandbox Code Playgroud)
(联盟是两个列表中的所有东西 - 除了联合之外的所有东西都是空集...)
你是我的一切,这只是在一个列表或其他?怎么样:
var allButIntersection = a.Union(b).Except(a.Intersect(b));
Run Code Online (Sandbox Code Playgroud)
这可能有点效率低下,但它相当简单地表明了你的意思(假设我当然正确地解释了你).