2个不同数组中的不匹配元素[重复]
Posted
技术标签:
【中文标题】2个不同数组中的不匹配元素[重复]【英文标题】:Unmatched elements in 2 different Arrays [duplicate] 【发布时间】:2020-11-08 16:12:33 【问题描述】:假设,我有 2 个不同的数组。第一个是
x[] = 0, 1, 2, 3, 4
,第二个是y[] = 1, 3, 4
。我期望的输出是z[] = 0, 2
。我如何在 C# 中做到这一点?
注意:我还希望 z[]
元素按升序排列。
【问题讨论】:
***.com/questions/683310/…的可能重复 【参考方案1】:你可以使用 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()
var result = x.Except(y);
如果您使用的是Except()
,请阅读以下来自MSDN的注释
这个方法首先返回那些没有出现在 第二。它不会在第二秒返回那些没有出现的元素 在第一。 只返回唯一元素。
.Net Fiddle
【讨论】:
【参考方案2】:下面的代码 sn-p 给出了两个数组中的排序不匹配的元素作为结果;
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
【讨论】:
以上是关于2个不同数组中的不匹配元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章