如果我有两个列表并且我想要两个列表中常见的元素,我可以使用此代码:
var listC = listA.Intersect(listB);
但是,如果我想要不常见的元素?没有重复?有交叉吗?
感谢。
答案 0 :(得分:3)
到目前为止,这两个答案都不包含listB
中不在listA
内的项目。要获取 列表中的任何项目,但不在两个列表中
listA.Union(listB).Except(listA.Intersect(listB));
答案 1 :(得分:1)
使用此:
var result = listA.Except(listB); //maybe a .ToList() at the end,
//or passing an IEqualityComparer<T> if you want a different equality comparison.
答案 2 :(得分:1)
效率最高:
var set = new HashSet<T>(listA);
set.SymmetricExceptWith(listB);