En LINQ, los operadores de conjunto son aquellos operadores en la expresión de consulta que devuelven un conjunto de resultados que se basa en la existencia o inexistencia de los elementos equivalentes dentro de las mismas o diferentes colecciones, secuencias o conjuntos. El operador de consulta estándar contiene los siguientes operadores de conjunto:
- Unión
- Intersecarse
- Excepto
- Distinto
Operador de intersección
El operador Intersección devuelve la intersección establecida. O en otras palabras, podemos decir que devuelve el conjunto o colección que contiene los elementos comunes que aparecen en dos colecciones o conjuntos.
- No es compatible con la sintaxis de consulta en los lenguajes C# y VB.Net. Pero puede usar el método Intersect en la variable de consulta o puede envolver su consulta entre paréntesis y luego llamar al método Intersect.
- Admite la sintaxis del método en los lenguajes C# y VB.Net.
- Está presente tanto en la clase Queryable como en la Enumerable.
- Se implementa mediante el uso de ejecución diferida.
- Cuando trabaje con colecciones de tipos complejos, debe usar la interfaz IEqualityComparer; de lo contrario, el método Intersect le dará un resultado incorrecto.
Ejemplo 1:
// C# program to find the intersection // of the given sequence using System; using System.Linq; class GFG { static public void Main() { // Data source char[] sequence1 = {'m', 'q', 'o', 's', 'y', 'a'}; char[] sequence2 = {'p', 't', 'r', 's', 'y', 'z'}; // Display the sequences Console.WriteLine("Sequence 1 is: "); foreach(var s1 in sequence1) { Console.WriteLine(s1); } Console.WriteLine("Sequence 2 is: "); foreach(var s2 in sequence2) { Console.WriteLine(s2); } // Get intersection of the given sequence // Using Intersect function var result = sequence1.Intersect(sequence2); Console.WriteLine("New Sequence: "); foreach(var val in result) { Console.WriteLine(val); } } }
Producción:
Sequence 1 is: m q o s y a Sequence 2 is: p t r s y z New Sequence: s y
Ejemplo 2:
// C# program to find the commonly // known languages by the employees using System; using System.Linq; using System.Collections.Generic; // Employee details public class Employee1 { public int emp_id1 { get; set; } public string emp_name1 { get; set; } public string emp_lang1 { get; set; } } // Employee details public class Employee2 { public int emp_id2 { get; set; } public string emp_name2 { get; set; } public string emp_lang2 { get; set; } } public class GFG { // Main method static public void Main() { List<Employee1> emp1 = new List<Employee1>() { new Employee1() {emp_id1 = 209, emp_name1 = "Anjita", emp_lang1 = "C#"}, new Employee1() {emp_id1 = 210, emp_name1 = "Soniya", emp_lang1 = "C"}, new Employee1() {emp_id1 = 211, emp_name1 = "Rohit", emp_lang1 = "Java"}, }; List<Employee2> emp2 = new List<Employee2>() { new Employee2() {emp_id2 = 290, emp_name2 = "Anjita", emp_lang2 = "C#"}, new Employee2() {emp_id2 = 212, emp_name2 = "MaMa", emp_lang2 = "Python"}, new Employee2() {emp_id2 = 233, emp_name2 = "Rima", emp_lang2 = "Java"}, }; // Query to find the commonly known // languages by the employees // Using Intersect method var res = emp1.Select(e => e.emp_lang1).Intersect(emp2.Select(e => e.emp_lang2)); Console.WriteLine("Commonly known Languages: "); foreach(var val in res) { Console.WriteLine(val); } } }
Producción:
Commonly known Languages: C# Java
Publicación traducida automáticamente
Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA