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个不同数组中的不匹配元素[重复]的主要内容,如果未能解决你的问题,请参考以下文章

java 中如何 找出两个集合中的不重复的元素

有重复元素的排列问题

3sum

Java数组去重复问题

在对象数组中查找所有匹配的元素[重复]

LeetCode ( 26 ) ---[删除有序数组中的重复项](Java)