Рубрики

LINQ | Оператор раздела | принимать

В LINQ операторы разбиения используются для разделения данной последовательности на две части без сортировки элементов и возврата одной из частей. Стандартные операторы запросов поддерживают 4 различных типа операторов секционирования:

  1. Пропускать
  2. SkipWhile
  3. принимать
  4. TakeWhile

Взять Оператора

Оператор Take используется для возврата указанного количества соседних элементов от начала последовательностей. Или, другими словами, мы можем сказать, что он возвращает указанное количество элементов, начиная с первого элемента. Как показано в примере ниже:

Важные моменты:

  • Он не поддерживает синтаксис запросов в языках C # и VB.Net. Но вы можете использовать метод Take для запроса переменной или заключить запрос в квадратные скобки, а затем вызвать метод Take. Как показано в Примере 2 .
  • Он поддерживает синтаксис методов на языках C # и VB.Net.
  • Он присутствует в классах Queryable и Enumerable.
  • Это реализуется с помощью отложенного выполнения.
  • Он выдаст исключение ArgumentNullException, если источник имеет значение null.

Пример 1:

// C # программа для иллюстрации
// концепция взятия оператора

using System;

using System.Linq;

  

class GFG {

  

    // Основной метод

    static public void Main()

    {

  

        // Источник данных

        int[] sequence = {45, 67, 89,

                     13, 56, 76, 67};

  

        // Запрос который выбирает начиная 5

        // элементы из заданной последовательности

        // Используем метод Take

        var result = sequence.OrderBy(s => s).Take(5);

  

        Console.WriteLine("New Sequence: ");

  

        // Показать новую последовательность

        foreach(var val in result)

        {

            Console.WriteLine(val);

        }

    }

}

Выход:

New Sequence: 
13
45
56
67
67

Пример 2:

// C # программа для поиска имен
// из первых 4 сотрудников

using System;

using System.Linq;

using System.Collections.Generic;

  
// Данные сотрудника

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 {

  

    // Основной метод

    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},

        };

  

        // Запрос для поиска имен

        // из первых 4 сотрудников

        // Используем метод Take

        var res = (from e in emp

                   select e.emp_name)

                   .Take(4);

  

        foreach(var val in res)

        {

            Console.WriteLine("Employee Name: {0}", val);

        }

    }

}

Выход:

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

Рекомендуемые посты:

LINQ | Оператор раздела | принимать

0.00 (0%) 0 votes