【问题标题】:Linq List comparingLinq 列表比较
【发布时间】:2010-07-28 21:43:05
【问题描述】:

Linq 很棒,但它似乎总是让我有点困惑。

这是我最近的困惑:

假设我有两个 List<String> 对象。我们称他们为sourceListdestList

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

这有点令人困惑,所以这里是示例:

源列表 目标列表 橙子 苹果苹果 葡萄 葡萄 猕猴桃 香蕉

所以我要寻找的第一个结果将是一个包含橙色的列表。第二个结果是包含 Kiwi 和 Banana 的列表。

知道如何用 Linq 做到这一点吗?

【问题讨论】:

    标签: c# linq generics


    【解决方案1】:
    sourceList.Except(destList)
    

    应该得到源和目标的区别。您也可以反过来进行合并。

    【讨论】:

    • hookedonlinq.com/ExceptOperator.ashx 是 except 方法的一个很好的例子。有一个重载允许您创建自己的比较函数。在这种情况下不需要,但在其他情况下可能有用。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 2019-09-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多