LINQ | Operador cuantificador | Contiene

En LINQ, los operadores cuantificadores se utilizan para devolver un valor booleano que muestra si algunos o todos los elementos satisfacen la condición dada. El operador de consulta estándar admite 3 tipos diferentes de operadores cuantificadores:

  1. Todos
  2. Ningún
  3. Contiene

Contiene Operador

El operador Contiene se utiliza para verificar si la secuencia o colección dada contiene el elemento especificado o no. Devolverá verdadero si la secuencia dada contiene el elemento especificado; de lo contrario, devolverá falso. Se sobrecarga en dos tipos diferentes:

  • Contiene<TSource>(IEnumerable<TSource>, TSource): este método se utiliza para comprobar si una secuencia contiene un elemento específico mediante el comparador de igualdad predeterminado.
  • Contiene<TSource>(IEnumerable<TSource>, TSource, IEqualityComparer<TSource>): este método se utiliza para comprobar si una secuencia contiene un elemento específico mediante el uso de un IEqualityComparer especificado.

Puntos importantes:

  • No es compatible con la sintaxis de consulta en los lenguajes C# y VB.Net.
  • Admite la sintaxis del método en los lenguajes C# y VB.Net.
  • Está presente tanto en la clase Queryable como en la Enumerable.
  • Lanzará ArgumentNullException si la fuente dada es nula.
  • No devuelve valor en lugar de esto, devuelve verdadero o falso.
  • El tipo de retorno de este operador es System.Boolean .
  • Puede usar la clase personalizada que deriva IEqualityOperator con Contiene para verificar el objeto en la colección dada.

Ejemplo 1:

// C# program to illustrate the
// use of Contains operator
using System;
using System.Linq;
using System.Collections.Generic;
  
class GFG {
  
    static public void Main()
    {
  
        // Data source
        int[] sequence1 = {34, 56, 77, 88,
                          99, 10, 23, 46};
  
        string[] sequence2 = {"Geek", "Geeks123",
                                "GeeksforGeeks"};
  
        // Check the sequence1 contain 10
        // Using Contains operator
        var result1 = sequence1.Contains(10);
  
        Console.WriteLine("Result: {0}", result1);
  
        // Check the sequence2 contain "qq"
        // Using Contains operator
        var result2 = sequence2.Contains("123Geek");
  
        Console.WriteLine("Result: {0}", result2);
    }
}
Producción:

Result: True
Result: False

Ejemplo 2:

// C# program to check the new employee
// is found in the given old data list
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;
    }
}
  
// the EmpCompar class implements
// IEqualityComparer<Employee>
// To compare the details of the new 
// employee to the details of the old list
public class EmpCompar : IEqualityComparer<Employee> {
      
    public bool Equals(Employee a, Employee b)
    {
        if (a.emp_id == b.emp_id && a.emp_name == b.emp_name &&
                                a.emp_gender == b.emp_gender && 
                          a.emp_hire_date == b.emp_hire_date && 
                                  a.emp_salary == b.emp_salary)
            return true;
  
        return false;
    }
  
    public int GetHashCode(Employee obj)
    {
        return obj.GetHashCode();
    }
}
  
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},
        };
  
        // New employee
        Employee emp1 = new Employee() {emp_id = 215, emp_name = "Anu",
                    emp_gender = "Female", emp_hire_date = "18/6/2015",
                                                   emp_salary = 50000};
  
        // Query to check the new employee is 
        // found in the given old data list
        // Using Contain operator
        var res = emp.Contains(emp1, new EmpCompar());
        Console.WriteLine("Employee Found?: {0}", res);
    }
}
Producción:

Employee Found?: False

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *