LINQ | Operador de Proyección | Seleccione

En LINQ, la proyección es una operación que convierte un objeto en la nueva forma que contiene solo aquellas propiedades que se utilizarán posteriormente. Mediante el uso de la proyección, un desarrollador puede crear un nuevo tipo que se construye a partir de cada objeto. Se le permite proyectar propiedades y realizar funciones matemáticas en ellas, y también puede proyectar el objeto original sin transformarlo.

En LINQ, están disponibles las siguientes operaciones de proyección:

  1. Seleccione
  2. seleccionarmuchos

Seleccionar Operador

El operador de selección devuelve la colección IEnumerator, que contiene los elementos en función de una función de transformación. O, en otras palabras, podemos decir que el operador de selección se usa cuando desea seleccionar un solo valor de la colección dada.

Seleccionar usando la sintaxis de consulta: en LINQ, se usa un operador Seleccionar para crear una consulta usando la sintaxis de consulta. En la expresión de consulta, la expresión termina con la cláusula Select o GroupBy. En una consulta, el operador de selección se usa para devolver la colección de la clase personalizada o tipo anónimo que incluye las propiedades según la necesidad del usuario y también se usa para manipular el resultado según la necesidad del usuario. Seleccione la sintaxis de consulta de soporte del operador tanto en C# como VB.NETen el idioma, como se muestra en los siguientes ejemplos:

Ejemplo:

// C# program to find the name 
// of the employee
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 name of the employee
        // Using select in  Query Syntax
        var res = from e in emp
                      select e.emp_name;
  
        foreach(var val in res)
        {
            Console.WriteLine("Employee Name: {0}", val);
        }
    }
}
Producción:

Employee Name: Anjita
Employee Name: Soniya
Employee Name: Rohit
Employee Name: Supriya
Employee Name: Anil
Employee Name: Anju

Seleccionar usando la sintaxis del método: en la sintaxis del método, el operador de selección es opcional, puede usarlo para dar forma a los datos. El método Select está presente tanto en la clase Queryable como en la Enumerable. Admite la sintaxis de métodos en los lenguajes C# y VB.Net. El uso del método de selección se muestra en los siguientes ejemplos.

Ejemplo:

// C# program to find the name 
// and id of the employee
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 },
        };
  
        // finding the name and id of the 
        // employee Using select method
        var res = emp.Select(a => new { ID = a.emp_id, Name = a.emp_name });
  
        foreach(var val in res)
        {
            Console.WriteLine("Employee Name : {0}  Employee ID : {1}",
                                                     val.Name, val.ID);
        }
    }
}
Producción:

Employee Name : Anjita  Employee ID : 209
Employee Name : Soniya  Employee ID : 210
Employee Name : Rohit  Employee ID : 211
Employee Name : Supriya  Employee ID : 212
Employee Name : Anil  Employee ID : 213
Employee Name : Anju  Employee ID : 214

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 *