2011-08-03 26 views

回答

8

您正在尋找的symmetric-difference,那LINQ到對象沒有,但(作爲.NET 4.0)操作。你做這件事的方式完全沒問題 - 儘管你可能想考慮把它提取出來,用它自己的方法。

但是,實現這一點的更有效的方法是使用HashSet<T>.SymmetricExceptWith方法。

var result = new HashSet<int>(a); 
result.SymmetricExceptWith(b); 

foreach (var d in result) 
    Console.WriteLine(d); // 1 4 
+1

這似乎比我的方法更好,謝謝:) – MrCoocoo

4

嘗試

a.Union(b).Except(a.Intersect(b)) 
+1

對我來說,這個方法似乎比原始問題中的方法更清晰,但是無論哪種方式都沒有問題, –

0

我認爲你所擁有的可能是從簡單代碼的角度來做這件事的最好方法。

儘管取決於您的最終目標是什麼,但可能有方法使其更具可讀性。

相關問題