2013-04-27 275 views
1

我有数组在C#如何找出C#中两个数组中的不同元素?

int array1 = new int[]{1,2,3,3,4,5}; 

,我有两个问题:

  1. 我不知道如何删除数组重复的元素。
  2. 当我比较array1与array3 {1,2,3,4,5,6,7,8,9,10},有多少元素消失,它们是什么数字?

我不知道要做到这一点!

回答

6

最简单的方法是使用LINQ,特别是方法DistinctExcept

要从array1删除重复:

var withoutDupes = array1.Distinct().ToArray(); 

要查看array2加入什么元素使用array1作为参考:

var added = array2.Except(array1).ToArray(); 

要查看array2除去什么元素使用array1作为参考:

var removed = array1.Except(array2).ToArray(); 
+0

我想补充一点,如果你真的需要这个数组来处理别的东西,那么'ToArray'就是必须的。 'Distinct'和'Except'返回的'IEnumerable'通常就足够了。 – JulianR 2013-04-27 01:23:24

+0

@JulianR:我们这样做是为了即时计算,而不是在LINQ中延迟/延迟加载。 – 2013-04-27 01:25:36

5

首先,它应该是

int[] array1 = new int[]{1,2,3,3,4,5}; 

要删除所有重复的条目做

using System.Linq; 

var result = array1.Distinct().ToArray(); 

要看到这是在阵列1的元素,而不是在ARRAY3

​​

要查看元素它们在array3中而不在array1中

var result = array3.Except(array1).ToArray(); 

enter image description here

+0

非常感谢亲! – 2013-04-27 10:26:35

相关问题