C# 2个不同数组中的不匹配元素
比方说,我有两个不同的数组。首先是C# 2个不同数组中的不匹配元素,c#,arrays,algorithm,compare,missing-data,C#,Arrays,Algorithm,Compare,Missing Data,比方说,我有两个不同的数组。首先是 x[]={0,1,2,3,4}第二个是y[]={1,3,4}。我期望的输出是z[]={0,2}。我怎样才能在C#中做到这一点 注意:我还希望z[]元素按升序排列。您可以使用Linq int[] x = new int[]{0, 1, 2, 3, 4}; int[] y = new int[]{1, 3, 4}; var result = x.Where(i => !y.Contains(i)).ToArray(); Con
x[]={0,1,2,3,4}
第二个是y[]={1,3,4}
。我期望的输出是z[]={0,2}
。我怎样才能在C#中做到这一点
注意:我还希望
z[]
元素按升序排列。您可以使用Linq
int[] x = new int[]{0, 1, 2, 3, 4};
int[] y = new int[]{1, 3, 4};
var result = x.Where(i => !y.Contains(i)).ToArray();
Console.WriteLine(string.Join(", ", result));
使用设置操作
Except()
如果您使用的是Except()
,请阅读下面的注释
此方法首先返回在中未出现的元素
第二。它不会在第二秒内返回那些没有出现的元素
首先只返回唯一的元素。
下面的代码片段给出了两个数组中排序不匹配的元素作为结果
int[] x = new int[] { 1, 2, 2, 3, 4, 0 };
int[] y = new int[] { 1, 3, 3, 4, 5 };
int[] result = x.Except(y).Union(y.Except(x)).ToArray();
Array.Sort(result);
Console.WriteLine(string.Join(' ', result)); // Output: 0 2 5
可能重复的
int[] x = new int[] { 1, 2, 2, 3, 4, 0 };
int[] y = new int[] { 1, 3, 3, 4, 5 };
int[] result = x.Except(y).Union(y.Except(x)).ToArray();
Array.Sort(result);
Console.WriteLine(string.Join(' ', result)); // Output: 0 2 5