语言集成查询语言(LINQ)是用来对C#集合或普通数据结构进行操作的。它被用来执行类似于SQL表达式的查询。
在这篇文章中,我们将讨论如何通过LINQ使用Intersect()方法进行交叉操作。
LINQ Intersect()
LINQ中的Intersect()用于返回两个给定数据结构中的共同元素。这些元素可以是数字类型或字符串类型。
语法
Data1.Intersect(Data2)
Data1是第一个数据结构,Data2是第二个数据结构。
例子1
让我们创建两个带有Integer元素的列表数据结构,并使用Intersect()方法返回共同值。
using System;
using System.Linq;
using System.Collections.Generic;
//create a class - Linuxhint
class Linuxhint
{
static public void Main(){
//create first data
List first_list = new List() { 345,678,456,890 };
//create second data
List second_list = new List() { 345,890,324,564,433};
Console.WriteLine("First List: ");
foreach (var values in first_list)
{
Console.WriteLine(values);
}
Console.WriteLine("Second List: ");
foreach (var values in second_list)
{
Console.WriteLine(values);
}
//perform Intersect operation on two Lists and store the result into list.
var operation = first_list.Intersect(second_list).ToList();
Console.WriteLine("Intersection operation on two Integer Lists: ");
//return one by one value from the operation
foreach (var result in operation)
{
Console.WriteLine(result);
}
}
}
输出

解释
创建列表
我们必须指定列表中的数据类型。

交叉操作
执行交叉操作后,我们将把结果存入List。

结果
我们正在使用foreach()循环一个一个地显示元素。

两个列表中的共同元素是。345和890。
例子2
让我们创建两个带有双倍元素的列表数据结构,并使用Intersect()方法返回共同值。
using System;
using System.Linq;
using System.Collections.Generic;
//create a class - Linuxhint
class Linuxhint
{
static public void Main(){
//create first data
List first_list = new List() { 1.20,4.5,7.0,8.99 };
//create second data
List second_list = new List() { 1.20,4.5,7.0,8.99};
Console.WriteLine("First List: ");
foreach (var values in first_list)
{
Console.WriteLine(values);
}
Console.WriteLine("Second List: ");
foreach (var values in second_list)
{
Console.WriteLine(values);
}
//perform Intersect operation on two Lists and store the result into list.
var operation = first_list.Intersect(second_list).ToList();
Console.WriteLine("Intersection operation on two double type Lists: ");
//return one by one value from the operation
foreach (var result in operation)
{
Console.WriteLine(result);
}
}
}
输出

解释
创建列表
我们必须在列表中指定数据类型为double,并传递元素:

交叉操作
执行交叉操作后,我们将把结果存储到List中:

结果
我们正在使用foreach()循环一个一个地显示元素:

两个列表上的共同元素是。1,2,4,5,7和8.99。
例子3
让我们创建两个带有字符串元素的列表数据结构,并使用 Intersect() 方法返回共同值。
using System;
using System.Linq;
using System.Collections.Generic;
//create a class - Linuxhint
class Linuxhint
{
static public void Main(){
//create first data
List first_list = new List() {"welcome","to","Linuxhint" };
//create second data
List second_list = new List() { "Linuxhint"};
Console.WriteLine("First List: ");
foreach (var values in first_list)
{
Console.WriteLine(values);
}
Console.WriteLine("Second List: ");
foreach (var values in second_list)
{
Console.WriteLine(values);
}
//perform Intersect operation on two Lists and store the result into list.
var operation = first_list.Intersect(second_list).ToList();
Console.WriteLine("Intersection operation on two double type Lists: ");
//return one by one value from the operation
foreach (var result in operation)
{
Console.WriteLine(result);
}
}
}
输出

两个列表中的共同元素是。Linuxhint。
总结
我们已经看到了如何使用LINQ在C#中对两个数据结构执行Intersect()操作。在这里,我们将List视为一个数据结构。LINQ中的Intersect()被用来返回两个给定数据结构的共同元素。这些元素可以是数字类型或字符串类型。
我们讨论了三个具有不同数据类型元素的例子。