📅  最后修改于: 2023-12-03 15:41:27.076000             🧑  作者: Mango
在C#中,获取两个数组之间不同的元素可以使用以下方法:
int[] arr1 = {1, 2, 3};
int[] arr2 = {2, 3, 4};
IEnumerable<int> diff = arr1.Except(arr2).Union(arr2.Except(arr1));
foreach (int i in diff)
{
Console.WriteLine(i);
}
上述代码使用了LINQ的Except和Union方法。Except方法可以得到在第一个数组中但不在第二个数组中的元素,Union方法可以得到两个数组中不同的所有元素。
这个例子中输出的结果为1和4。
除了使用LINQ方法,还可以使用以下方法:
int[] arr1 = {1, 2, 3};
int[] arr2 = {2, 3, 4};
IEnumerable<int> diff = arr1.Concat(arr2).GroupBy(x => x).Where(x => x.Count() == 1).Select(x => x.Key);
foreach (int i in diff)
{
Console.WriteLine(i);
}
上述代码使用了GroupBy和Where方法,GroupBy方法将两个数组合并并进行分组,Where方法可以得到只出现一次的元素,最后使用Select方法得到所有这样的元素。
这个例子中输出的结果为1和4。
无论哪种方法,都可以实现获取两个数组之间不同的元素。