C# Linq的Intersect()方法 – 返回两个序列的交集

  • Post category:C#

下面就是 C# Linq 的 Intersect() 的完整攻略。

1. Intersect() 简介

Intersect() 是一个 Linq 方法,用于计算两个或多个集合的交集。所谓交集,就是两个集合中共有的元素。

两个集合的交集是一个新集合,其中包含两个集合中都有的元素,且不包括重复的元素。Intersect() 方法返回的结果是一个 IEnumerable 的集合。

2. Intersect() 语法

Intersect() 方法的语法如下:

var intersectResult = collection1.Intersect(collection2);

其中,collection1 和 collection2 是要计算交集的两个集合。intersectResult 是返回的结果集合。

3. Intersect() 示例

示例1

假设我们有两个整数集合 collection1 和 collection2,分别表示学生集合和老师集合。他们都选了计算机课程并且获得了 A+ 成绩。我们需要找出两个集合中都有的学生。

下面是代码示例:

// 学生集合
int[] studentCollection = { 1, 2, 3, 4, 5 };
// 老师集合
int[] teacherCollection = { 3, 4, 5, 6, 7 };
// 筛选出两个集合中都有的元素
IEnumerable<int> commonCollection = studentCollection.Intersect(teacherCollection);
// 输出结果集合元素
foreach (var item in commonCollection)
{
    Console.Write(item + " ");
}

上述代码输出的结果为:

3 4 5

示例2

假设我们还有两个字符串集合 collection1 和 collection2,分别包含多个单词。我们需要找出两个集合中都有的单词。

下面是代码示例:

// 字符串集合1
string[] stringCollection1 = { "apple", "banana", "pear", "peach" };
// 字符串集合2
string[] stringCollection2 = { "peach", "pear", "orange", "banaba", "pineapple" };
// 筛选出两个集合中都有的元素
IEnumerable<string> commonCollection = stringCollection1.Intersect(stringCollection2);
// 输出结果集合元素
foreach (var item in commonCollection)
{
    Console.Write(item + " ");
}

上述代码输出的结果为:

pear peach

4. 总结

Intersect() 方法是 Linq 中一个非常实用的方法。它可以用于计算两个集合中的交集,可以用于各种数据类型。在实际开发中,我们可以使用 Intersect() 方法对数据进行快速过滤和相交判断。