📌  相关文章
📜  使用 LINQ 在一个 List<> 中获取不在另一个 List<> 中的项目 (1)

📅  最后修改于: 2023-12-03 15:36:31.773000             🧑  作者: Mango

使用 LINQ 在一个 List<> 中获取不在另一个 List<> 中的项目

在开发过程中,我们经常需要从一个 List<> 中获取不在另一个 List<> 中的项目,这在 LINQ 中非常容易实现。

示例代码

以下是一个示例代码,用于获取第一个列表中不在第二个列表中的项目:

List<int> firstList = new List<int> { 1, 2, 3, 4, 5 };
List<int> secondList = new List<int> { 2, 4, 6 };

var result = firstList.Except(secondList);

foreach (var item in result)
{
    Console.WriteLine(item);
}

这段代码会输出以下内容:

1
3
5

上述代码中,我们首先定义了两个 List<>,一个是 firstList,另一个是 secondList。然后我们使用 LINQ 的 Except 方法从 firstList 中取出不在 secondList 中的项目,最后将其输出。

各个方法的解释

Except

这个方法用于获取一个序列中不在另一个序列中的项目。在上面的示例代码中,我们用它来从 firstList 中检索不在 secondList 中的项目。返回的结果是一个 IEnumerable。

var result = firstList.Except(secondList);

Union

这个方法用于获取两个序列的并集。返回的结果是一个 IEnumerable。

var result = firstList.Union(secondList);

Intersect

这个方法用于获取两个序列的交集。返回的结果是一个 IEnumerable。

var result = firstList.Intersect(secondList);

Concat

这个方法用于将两个序列连接在一起。返回的结果是一个 IEnumerable。

var result = firstList.Concat(secondList);
总结

在本文中,我们介绍了如何使用 LINQ 在一个 List<> 中获取不在另一个 List<> 中的项目。我们用了 Except 方法来实现这一目标,并同时介绍了 Union、Intersect 和 Concat 这些方法。除了这些方法以外,LINQ 还提供了许多其他强大的操作,可以帮助我们简化开发,提高代码的可读性和可维护性。