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 distinto
El operador Distinct devuelve el conjunto que no contiene valores duplicados. O, en otras palabras, podemos decir que este operador elimina todos los valores duplicados del conjunto o colección y devuelve un conjunto o colección que contiene valores únicos o diferentes.
- No es compatible con la sintaxis de consulta en los lenguajes C# y VB.Net. Pero puede usar el método Distinct en la variable de consulta o puede envolver su consulta entre corchetes y luego llamar al método Distinct.
- 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 trabaja con colecciones de tipos complejos, debe usar la interfaz IEqualityComparer para usar el método Distinct porque el método Distinct no compara los valores de los tipos complejos.
Ejemplo 1:
// C# program to find the sequence // which contains unique elements using System; using System.Linq; class GFG { static public void Main() { // Data source char[] sequence = {'m', 'q', 'o', 's', 'y', 'a', 'a', 'c', 'y', 'o'}; // Display the sequence Console.WriteLine("Sequence is: "); foreach(var s in sequence) { Console.WriteLine(s); } // Get the sequence which contains unique // elements Using Distinct function var result = sequence.Distinct(); Console.WriteLine("New Sequence: "); foreach(var val in result) { Console.WriteLine(val); } } }
Sequence is: m q o s y a a c y o New Sequence: m q o s y a c
Ejemplo 2:
// C# program to find the salary of // the employees with dissimilar values using System; using System.Linq; using System.Collections.Generic; // Employee details public class Employee { public int emp_id { get; set; } public string emp_name { get; set; } public string emp_gender { get; set; } public string emp_hire_date { get; set; } public int emp_salary { get; set; } } class GFG { // Main method static public void Main() { List<Employee> emp = new List<Employee>() { new Employee() {emp_id = 209, emp_name = "Anjita", emp_gender = "Female", emp_hire_date = "12/3/2017", emp_salary = 20000}, new Employee() {emp_id = 210, emp_name = "Soniya", emp_gender = "Female", emp_hire_date = "22/4/2018", emp_salary = 30000}, new Employee() {emp_id = 211, emp_name = "Rohit", emp_gender = "Male", emp_hire_date = "3/5/2016", emp_salary = 40000}, new Employee() {emp_id = 212, emp_name = "Supriya", emp_gender = "Female", emp_hire_date = "4/8/2017", emp_salary = 40000}, new Employee() {emp_id = 213, emp_name = "Anil", emp_gender = "Male", emp_hire_date = "12/1/2016", emp_salary = 40000}, new Employee() {emp_id = 214, emp_name = "Anju", emp_gender = "Female", emp_hire_date = "17/6/2015", emp_salary = 50000}, }; // Query to find the salary of the // employees with dissimilar values // Using Distinct method var res = emp.Select(e => e.emp_salary).Distinct(); Console.WriteLine("Employee Salary: "); foreach(var val in res) { Console.WriteLine(val); } } }
Employee Salary: 20000 30000 40000 50000
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