📅  最后修改于: 2023-12-03 15:02:41.523000             🧑  作者: Mango
相交操作在LINQ中是一种常见的运算符,它可以帮助我们在两个集合中查找共有的元素。本文将介绍使用LINQ进行相交操作的方法及示例。
Intersect是一个LINQ运算符,用于查找两个集合中共有的元素。它的语法如下:
IEnumerable<TSource> Intersect<TSource>(this IEnumerable<TSource> first, IEnumerable<TSource> second)
first
:第一个集合。second
:第二个集合。Intersect方法返回一个包含两个集合中共有元素的集合。下面的代码示例演示如何在两个数组中找到共有的元素。
int[] numbers1 = { 1, 2, 3, 4, 5 };
int[] numbers2 = { 2, 4, 6, 8 };
IEnumerable<int> result = numbers1.Intersect(numbers2);
foreach (var number in result)
{
Console.WriteLine(number); // Output: 2 4
}
除了Intersect运算符之外,我们还可以使用Join运算符进行相交操作。Join方法将两个集合中的元素进行匹配,返回一个新的集合。Join方法的语法如下:
IEnumerable<TResult> Join<TOuter, TInner, TKey, TResult>(this IEnumerable<TOuter> outer, IEnumerable<TInner> inner, Func<TOuter, TKey> outerKeySelector, Func<TInner, TKey> innerKeySelector, Func<TOuter, TInner, TResult> resultSelector);
outer
:第一个集合。inner
:第二个集合。outerKeySelector
:用于选择第一个集合中的关键字的函数。innerKeySelector
:用于选择第二个集合中的关键字的函数。resultSelector
:用于合并两个元素的函数。Join方法返回一个新的集合,其中包含两个集合中相交的元素。下面的代码示例演示如何在两个数组中找到共有的元素。
int[] numbers1 = { 1, 2, 3, 4, 5 };
int[] numbers2 = { 2, 4, 6, 8 };
var result = numbers1.Join(
numbers2,
n1 => n1,
n2 => n2,
(n1, n2) => n1
);
foreach (var number in result)
{
Console.WriteLine(number); // Output: 2 4
}
Intersect和Join是在LINQ中进行相交操作的两种常见运算符。它们分别提供了不同的语法和实现方式,开发者可以根据具体场景选择适合的方法进行相交操作。