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

本文关键字:数组 两个 唯一 输入 包含 Linq 创建 使用 一个 | 更新日期: 2023-09-27 17:50:35

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

使用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的成本是否值得。