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