Секционирование данных (Visual Basic)

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

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

Illustration that shows three LINQ partitioning operations.

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

Операторы

Имя оператора Description Синтаксис выражения запроса Visual Basic Дополнительные сведения
Пропустить Пропускает элементы до указанной позиции в последовательности. Skip Enumerable.Skip

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

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

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

Queryable.TakeWhile
Блочное Разделяет элементы последовательности на фрагменты указанного максимального размера. Enumerable.Chunk
Queryable.Chunk

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

Пропустить

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


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

SkipWhile

В следующем примере кода предложение в Visual Basic используется Skip While для пропуска строк в массиве, а первая буква строки — 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

Take

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


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

TakeWhile

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


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

См. также