使用c#和Linq创建一个数组,其中包含来自两个输入数组的唯一项



我有两个包含文件名的字符串数组。从这两个数组中,我需要生成第三个字符串数组,它只包含唯一的文件名(即,在一个数组中找到,但不能在两个数组中找到)。

var elements = array1.Union(array2).Except(array1.Intersect(array2));

考虑使用HashSet<T>。它有一个你正在寻找的实现。

var setA = new HashSet<string>(arrayA);  
setA.SymmetricExceptWith(arrayB); // setA is mutated 

显然,您需要度量初始化HashSet的成本是否值得。

最新更新