LINQ | Operador de filtrado | de tipo

Los operadores de filtrado son aquellos operadores que se utilizan para filtrar los datos de acuerdo con los requisitos del usuario de la fuente de datos dada o de la secuencia dada. Por ejemplo, en un registro de empleado, queremos obtener los datos de los empleados cuya edad es 21. Entonces, filtramos el registro según su edad. En LINQ, puede filtrar utilizando los siguientes operadores:

  1. Dónde
  2. de tipo

Operador de tipo

El operador OfType filtra la secuencia o la fuente de datos dependiendo de su capacidad para convertir un elemento en una colección a un tipo específico. Se implementa mediante el uso de la ejecución diferida, lo que significa que devuelve inmediatamente un objeto que contiene la información necesaria para realizar la acción, pero se ejecuta cuando el objeto itera sobre el bucle mediante foreach loop o for loop.

  • En LINQ, puede usar varios OfType en una sola consulta.
  • No es compatible con la sintaxis de consulta en lenguaje C# o VB.Net, pero puede usarlo con sintaxis como se muestra en el siguiente ejemplo.

    Ejemplo:

    // C# program to illustrate the 
    // concept of OfType operator
    using System;
    using System.Linq;
    using System.Collections;
      
    // 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;
        }
    }
      
    public class GFG {
      
        // Main method
        static public void Main()
        {
      
            // Data Source
            ArrayList myarray = new ArrayList();
            myarray.Add("GeeksforGeeks");
            myarray.Add(23);
            myarray.Add(new Employee() {emp_id = 209, emp_name = "Anjita"});
            myarray.Add(new Employee() {emp_id = 210, emp_name = "Soniya"});
            myarray.Add(new Employee() {emp_id = 300, emp_name = "Rohan"});
      
            // Using OfType operator
            var res1 = from e1 in myarray.OfType<string>()
                           select e1;
      
            foreach(var val1 in res1)
            {
                Console.WriteLine(val1);
            }
      
            var res2 = from e2 in myarray.OfType<Employee>()
                           select e2;
      
            foreach(var val2 in res2)
            {
                Console.WriteLine(val2.emp_name);
            }
        }
    }
    Producción:

    GeeksforGeeks
    Anjita
    Soniya
    Rohan
    
  • Admite la sintaxis de métodos en C# o en VB. Está disponible tanto en la clase Queryable como en la Enumerable. Como se muestra en el siguiente ejemplo.

    Ejemplo:

    // C# program to illustrate the 
    // concept of OfType operator
    using System;
    using System.Linq;
    using System.Collections;
      
    // 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()
        {
      
            // Data Source
            ArrayList myarray = new ArrayList();
            myarray.Add(new Employee() {emp_id = 209, emp_name = "Anjita"});
            myarray.Add(new Employee() {emp_id = 210, emp_name = "Soniya"});
            myarray.Add(new Employee() {emp_id = 300, emp_name = "Rohan"});
      
            // Get the id of the employees
            // Using OfType operator
            var res = myarray.OfType<Employee>();
      
            foreach(var val in res)
            {
                Console.WriteLine("Employee Id: {0}", val.emp_id);
            }
        }
    }
    Producción:

    Employee Id: 209
    Employee Id: 210
    Employee Id: 300
    

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 *