2013-04-27 70 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

相關問題