Поделиться через


Разделение данных

Секционированием в LINQ называют операцию разделения входной последовательности на два раздела без изменения порядка элементов, а затем возвращения одного из разделов.

На следующем рисунке показаны результаты трех различных операций секционирования в последовательности знаков.Первая операция возвращает первые три элемента в последовательности.Вторая операция пропускает первые три элемента и возвращает остальные элементы.Третья операция пропускает первые два элемента в последовательности и возвращает три следующих элемента.

Операции секционирования LINQ

Методы стандартных операторов запросов, которые выполняют секционирование, перечислены в следующем разделе.

Операторы

Имя оператора

Описание

Синтаксис выражения запроса C#

Синтаксис выражения запроса Visual Basic

Дополнительные сведения

Skip

Пропускает элементы до указанной позиции в последовательности.

Неприменимо.

Skip

Enumerable.Skip<TSource>

Queryable.Skip<TSource>

SkipWhile

Пропускает элементы, пока элемент не удовлетворит условию функции предиката.

Неприменимо.

Skip While

Enumerable.SkipWhile

Queryable.SkipWhile

Take

Возвращает элементы на указанную позицию в последовательности.

Неприменимо.

Take

Enumerable.Take<TSource>

Queryable.Take<TSource>

TakeWhile

Принимает элементы, пока элемент не удовлетворит условию функции предиката.

Неприменимо.

Take While

Enumerable.TakeWhile

Queryable.TakeWhile

Примеры синтаксиса выражений запроса

Bb546164.collapse_all(ru-ru,VS.110).gifSkip

Следующий пример кода использует предложение Skip Visual Basic для пропуска первых четырех строк в массиве строк перед возвращением оставшихся строк в массиве.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Skip 4

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' keeps
        ' the
        ' doctor
        ' away

Bb546164.collapse_all(ru-ru,VS.110).gifSkipWhile

Следующий пример кода использует предложение Skip While Visual Basic для пропуска строк в массиве, начинающихся с буквы "a".Оставшиеся строки массива возвращаются.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Skip While word.Substring(0, 1) = "a"

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' day
        ' keeps
        ' the
        ' doctor
        ' away

Bb546164.collapse_all(ru-ru,VS.110).gifTake

Следующий пример кода использует предложение Take Visual Basic для возврата первых двух строк в массиве строк.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Take 2

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' an
        ' apple

Bb546164.collapse_all(ru-ru,VS.110).gifTakeWhile

Следующий пример кода использует предложение Take While Visual Basic для возврата строк, длина которых не превышает пяти знаков, из массива.


        Dim words = {"an", "apple", "a", "day", "keeps", "the", "doctor", "away"}

        Dim query = From word In words 
                    Take While word.Length < 6

        Dim sb As New System.Text.StringBuilder()
        For Each str As String In query
            sb.AppendLine(str)
        Next

        ' Display the results.
        MsgBox(sb.ToString())

        ' This code produces the following output:

        ' an
        ' apple
        ' a
        ' day
        ' keeps
        ' the

См. также

Ссылки

Предложение Skip (Visual Basic)

Предложение Skip While (Visual Basic)

Предложение Take (Visual Basic)

Предложение Take While (Visual Basic)

System.Linq

Основные понятия

Общие сведения о стандартных операторах запроса