如何使用LINQ在C#中对两个数据结构执行Intersect()操作

326 阅读3分钟

语言集成查询语言(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()被用来返回两个给定数据结构的共同元素。这些元素可以是数字类型或字符串类型。

我们讨论了三个具有不同数据类型元素的例子。