2010-07-28 92 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