假设我有这两个数组:
var array1 = new[] {"A", "B", "C"};
var array2 = new[] {"A", "C", "D"};
Run Code Online (Sandbox Code Playgroud)
我想得到两者之间的差异.我知道我可以用几行代码编写这个,但我想确保我没有错过内置语言功能或LINQ扩展方法.
理想情况下,我最终会得到以下三个结果:
提前致谢!
Jon*_*eet 107
如果你有LINQ可用,你可以使用Except和Distinct.您在问题中要求的集合分别为:
- array2.Except(array1)
- array1.Except(array2)
- array1.Intersect(array2)
Run Code Online (Sandbox Code Playgroud)
Mua*_*Dib 12
来自MSDN 101 LINQ样本 ....
public void Linq52() {
int[] numbersA = { 0, 2, 4, 5, 6, 8, 9 };
int[] numbersB = { 1, 3, 5, 7, 8 };
IEnumerable<int> aOnlyNumbers = numbersA.Except(numbersB);
Console.WriteLine("Numbers in first array but not second array:");
foreach (var n in aOnlyNumbers) {
Console.WriteLine(n);
}
}
Run Code Online (Sandbox Code Playgroud)