LINQ | Operador de partición | Tomar

En LINQ, los operadores de partición se utilizan para separar la secuencia dada en dos partes sin ordenar los elementos y devolver una de las partes. Los operadores de consulta estándar admiten 4 tipos diferentes de operadores de partición:

  1. Saltar
  2. Saltar Mientras
  3. Tomar
  4. tomar mientras

Operador de toma

El operador Take se usa para devolver un número específico de elementos adyacentes desde el inicio de las secuencias. O en otras palabras, podemos decir que devuelve el número especificado de elementos a partir del primer elemento. Como se muestra en el siguiente ejemplo:

Puntos importantes:

  • No es compatible con la sintaxis de consulta en los lenguajes C# y VB.Net. Pero puede usar el método Take para consultar la variable o puede envolver su consulta entre paréntesis y luego llamar al método Take. Como se muestra en el Ejemplo 2 .
  • 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.
  • Lanzará una ArgumentNullException si la fuente es nula.

Ejemplo 1:

// C# program to illustrate the
// concept of Taking operator
using System;
using System.Linq;
  
class GFG {
  
    // Main Method
    static public void Main()
    {
  
        // Data source
        int[] sequence = {45, 67, 89,
                     13, 56, 76, 67};
  
        // Query which picks starting 5 ordered
        // elements from the given sequence
        // Using Take method
        var result = sequence.OrderBy(s => s).Take(5);
  
        Console.WriteLine("New Sequence: ");
  
        // Display new sequence
        foreach(var val in result)
        {
            Console.WriteLine(val);
        }
    }
}
Producción:

New Sequence: 
13
45
56
67
67

Ejemplo 2:

// C# program to find the names
// of the first 4 employees
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 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 = "Anu", emp_gender = "Female",
                                  emp_hire_date = "4/8/2017", emp_salary = 80000},
  
            new Employee() {emp_id = 213, emp_name = "Anil", emp_gender = "Male",
                                emp_hire_date = "12/1/2016", emp_salary = 60000},
  
            new Employee() {emp_id = 214, emp_name = "Anju", emp_gender = "Female",
                                  emp_hire_date = "17/6/2015", emp_salary = 50000},
        };
  
        // Query to find the names 
        // of the first 4 employees
        // Using Take method
        var res = (from e in emp
                   select e.emp_name)
                   .Take(4);
  
        foreach(var val in res)
        {
            Console.WriteLine("Employee Name: {0}", val);
        }
    }
}
Producción:

Employee Name: Anjita
Employee Name: Soniya
Employee Name: Rohit
Employee Name: Anu

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 *