2010-07-28 108 views
0

Linq很棒,但它似乎總讓我困惑。Linq List比較

這是我最新的困惑:

說我有兩個List<String>對象。我們將其稱爲sourceListdestList

我需要一種方法來查找在sourceList中而不在destList中的字符串列表,並找到destList中而不是SourceList中的字符串列表。

這是一個有點所以這裏混亂是例如:

 
    sourceList destList 
    Orange  
    Apple   Apple 
    Grape   Grape 
        Kiwi 
        Banana 

所以我要尋找的第一個結果將是它與Orange的列表。第二個結果將是一個包含Kiwi和香蕉的清單。

任何想法如何與Linq做到這一點?

回答

3

實際上,我今天早些時候才這樣做。正如許克呂說,這代碼應該爲你做它:

List<string> firstResultList = sourceList.Except(destList); 
List<string> secondResultList = destList.Except(sourceList); 

firstResultList將橘子中並secondResultList將獼猴桃和香蕉。

5
sourceList.Except(destList) 

應該得到源和目標的差異。你也可以做相反的事情,並結合起來。

+0

http://www.hookedonlinq.com/ExceptOperator.ashx是Except方法的一個很好的例子。有一個重載允許你創建你自己的比較函數。在這種情況下不需要,但可能有用的其他情況。 – mpenrow 2010-07-28 21:53:44