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:
- Seleccione
- seleccionarmuchos
Operador SelectMany
El operador SelectMany devuelve secuencias de valores que se basan en la función de transformación y luego los convierte en una secuencia. O, en otras palabras, podemos decir que el operador SelectMany se usa cuando desea seleccionar valores de múltiples colecciones o si desea un resultado de la lista de listas y desea mostrarlo en una sola secuencia.
SelectMany en la sintaxis de consulta: en la sintaxis de consulta, el funcionamiento del operador SelectMany se logra mediante el uso de varias cláusulas from. Como se muestra en el siguiente ejemplo.
Ejemplo:
// C# program to find the languages // known by 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; } public List<string> emp_lang { 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, emp_lang = new List<string>{"C#", "VB"} }, new Employee() {emp_id = 210, emp_name = "Soniya", emp_gender = "Female", emp_hire_date = "22/4/2018", emp_salary = 30000, emp_lang = new List<string>{ "Java"} }, new Employee() {emp_id = 211, emp_name = "Rohit", emp_gender = "Male", emp_hire_date = "3/5/2016", emp_salary = 40000, emp_lang = new List<string>{ "C++", "SQL"} }, new Employee() {emp_id = 212, emp_name = "Supriya", emp_gender = "Female", emp_hire_date = "4/8/2017", emp_salary = 40000, emp_lang = new List<string>{"Python", "C", "PHP"} }, new Employee() {emp_id = 213, emp_name = "Anil", emp_gender = "Male", emp_hire_date = "12/1/2016", emp_salary = 40000, emp_lang = new List<string>{"HTML", "JQuery"} }, new Employee() {emp_id = 214, emp_name = "Anju", emp_gender = "Female", emp_hire_date = "17/6/2015", emp_salary = 50000, emp_lang = new List<string>{"JavaScript", "Perl"} }, }; // Query to find the languages // known by the employee var res = from e in emp from e2 in e.emp_lang select e2; Console.WriteLine("Languages known by all the employees are:"); foreach(var val in res) { Console.WriteLine(val); } } }
Languages known by all the employees are: C# VB Java C++ SQL Python C PHP HTML JQuery JavaScript Perl
SelectMany en la sintaxis del método: el método SelectMany está presente en las clases Queryable y Enumerable y es compatible con los lenguajes C# y VB.Net.
Ejemplo:
// C# program to find the languages // known by 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; } public List<string> emp_lang { get; set; } } public 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, emp_lang = new List<string>{"C#", "VB"} }, new Employee() {emp_id = 210, emp_name = "Soniya", emp_gender = "Female", emp_hire_date = "22/4/2018", emp_salary = 30000, emp_lang = new List<string>{ "Java"} }, new Employee() {emp_id = 211, emp_name = "Rohit", emp_gender = "Male", emp_hire_date = "3/5/2016", emp_salary = 40000, emp_lang = new List<string>{ "C++", "SQL"} }, new Employee() {emp_id = 212, emp_name = "Supriya", emp_gender = "Female", emp_hire_date = "4/8/2017", emp_salary = 40000, emp_lang = new List<string>{"Python", "C", "PHP"} }, new Employee() {emp_id = 213, emp_name = "Anil", emp_gender = "Male", emp_hire_date = "12/1/2016", emp_salary = 40000, emp_lang = new List<string>{"HTML", "JQuery"} }, new Employee() {emp_id = 214, emp_name = "Anju", emp_gender = "Female", emp_hire_date = "17/6/2015", emp_salary = 50000, emp_lang = new List<string>{"JavaScript", "Perl"} }, }; // Finding the languages known by the employee // Using SelectMany method var res = emp.SelectMany(a => a.emp_lang); Console.WriteLine("Languages known by all the employees are:"); foreach(var val in res) { Console.WriteLine(val); } } }
Languages known by all the employees are: C# VB Java C++ SQL Python C PHP HTML JQuery JavaScript Perl
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