2014-05-06 46 views
0

我正在嘗試查找未包含在其他列表中的字符串值。查找不在其他列表中的元素

我喜歡列表:

var list1 = new List<string>(); 
     list1.Add("element1"); 
     list1.Add("element2"); 


var list2 = new List<string>(); 
     list2.Add("element1"); 
     list2.Add("element2"); 
     list2.Add("element3"); 

我需要找到列表2其不在列表1元素,所以結果應該是唯一的:element3。我試圖做一些像LINQ一樣的東西,但是它並沒有成功。也許有人知道這個適當的解決方案?

+0

什麼,特別是,你試試,那個嘗試解決方案有什麼問題? – Servy

回答

5

使用Enumerable.Except

通過使用默認的 相等比較器對值進行比較產生兩個序列的差集。

var result = list2.Except(list1); 

這樣做的另一種方式可以是:

var result = list2.Where(r => !list1.Contains(r)); 

如果你需要一個List<string>的結果,那麼只需添加ToList()

0

使用Except

var list3 = list2.Except(list1); 
0
list2.Except(List1) 

。除(應努力

相關問題