Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Секционирование в 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