Рубрики

LINQ | Оператор раздела | Пропускать

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

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

Пропустить Оператор

Оператор Skip используется для пропуска элементов до указанной позиции в заданной последовательности или коллекции. Или, другими словами, мы можем сказать, что он пропускает указанное количество элементов и возвращает оставшиеся элементы, присутствующие в данной коллекции или последовательности.

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

Пример 1:

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

using System;

using System.Linq;

  

class GFG {

  

    static public void Main()

    {

  

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

        char[] sequence1 = {'c', 'y', 'p',

                           'q', 'l', 'a'};

  

        int[] sequence2 = {202, 2002, 20002,

                           200002, 2000002};

  

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

        Console.WriteLine("Original Sequence 1 is: ");

  

        foreach(var s1 in sequence1)

        {

            Console.WriteLine(s1);

        }

  

        // Запрос который пропускает начиная с 4

        // элементы sequence1

        // Использование метода Skip

        var result1 = sequence1.Skip(4);

        Console.WriteLine("New Sequence: ");

  

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

        foreach(var val in result1)

        {

            Console.WriteLine(val);

        }

  

        Console.WriteLine("Original Sequence 2 is: ");

  

        foreach(var s2 in sequence2)

        {

            Console.WriteLine(s2);

        }

  

        // Запрос, который пропускает начало 2

        // элементы sequence2

        // Использование метода Skip

        var result2 = sequence2.Skip(2);

  

        Console.WriteLine("New Sequence: ");

  

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

        foreach(var val in result2)

        {

            Console.WriteLine(val);

        }

    }

}

Выход:

Original Sequence 1 is: 
c
y
p
q
l
a
New Sequence: 
l
a
Original Sequence 2 is: 
202
2002
20002
200002
2000002
New Sequence: 
20002
200002
2000002

Пример 2:

// C # программа для поиска идентификаторов
// сотрудники начиная с 211

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 = "Supriya", 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},

        };

  

        // Запрос, чтобы найти идентификаторы

        // сотрудники начиная с 211

        // Использование метода Skip

        var res = (from e in emp

                select e.emp_id)

                .Skip(2);

  

        foreach(var val in res)

        {

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

        }

    }

}

Выход:

Employee Id: 211
Employee Id: 212
Employee Id: 213
Employee Id: 214

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

LINQ | Оператор раздела | Пропускать

0.00 (0%) 0 votes