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


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

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

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

Иллюстрация, показывающая три операции секционирования LINQ.

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

Операторы

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

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

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

Queryable.Take
TakeTime Принимает элементы на основе функции предиката, пока элемент не удовлетворяет условию. 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

ПропуститьПока

В следующем примере кода в 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

Взять

В следующем примере кода в 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

TakeTime

В следующем примере кода оператор 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

См. также