Секционирование данных (Visual Basic)
Секционированием в LINQ называют операцию разделения входной последовательности на два раздела без изменения порядка элементов, а затем возвращения одного из разделов.
На следующем рисунке показаны результаты трех различных операций секционирования в последовательности символов. Первая операция возвращает первые три элемента в последовательности. Вторая операция пропускает первые три элемента и возвращает остальные элементы. Третья операция пропускает первые два элемента в последовательности и возвращает три следующих элемента.
Далее перечислены методы стандартных операторов запроса, которые секционируют последовательности.
Операторы
Имя оператора | 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