Linq列表比较

时间:2010-07-28 21:43:05

标签: c# linq generics

Linq很棒,但似乎总是让我感到困惑。

这是我最近的困惑:

说我有两个List<String>个对象。我们会将其称为sourceListdestList

我需要一种方法来查找sourceList中而不是destList中的字符串列表,并找到destList中的字符串列表,而不是SourceList中的字符串列表。

这有点令人困惑,所以这是一个例子:

  sourceList    destList
   Orange    
   Apple          Apple
   Grape          Grape
                  Kiwi
                  Banana

所以我要找的第一个结果就是带有Orange的列表。第二个结果将是一张含有Kiwi和Banana的清单。

知道怎么用Linq做到这一点?

2 个答案:

答案 0 :(得分:5)

sourceList.Except(destList)

应该获得source和dest的差异。你也可以反过来并结合起来。

答案 1 :(得分:3)

我今天早些时候才这样做。正如sukru所说,这段代码应该为你做到:

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

firstResultList将包含Orange,secondResultList将包含Kiwi和Banana。