Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O particionamento no LINQ refere-se à operação de dividir uma sequência de entrada em duas seções, sem reorganizar os elementos e, em seguida, retornar uma das seções.
A ilustração a seguir mostra os resultados de três operações de particionamento diferentes em uma sequência de caracteres. A primeira operação retorna os três primeiros elementos na sequência. A segunda operação ignora os três primeiros elementos e retorna os elementos restantes. A terceira operação ignora os dois primeiros elementos na sequência e retorna os próximos três elementos.
Os métodos do operador de consulta padrão que particionam sequências estão listados na seção a seguir.
Operadores
| Nome do operador | Descrição | Sintaxe da expressão de consulta do Visual Basic | Mais informações |
|---|---|---|---|
| Pular | Ignora elementos até uma posição especificada numa sequência. | Skip |
Enumerable.Skip Queryable.Skip |
| SkipWhile | Ignora elementos baseados em uma função de predicado até que um elemento não satisfaça a condição. | Skip While |
Enumerable.SkipWhile Queryable.SkipWhile |
| Pegue | Leva elementos até uma posição especificada em uma sequência. | Take |
Enumerable.Take Queryable.Take |
| TakeWhile | Usa elementos baseados em uma função de predicado até que um elemento não satisfaça a condição. | Take While |
Enumerable.TakeWhile Queryable.TakeWhile |
| Segmento | Divide os elementos de uma sequência em partes de um tamanho máximo especificado. | Enumerable.Chunk Queryable.Chunk |
Exemplos de sintaxe de expressão de consulta
Pular
O exemplo de código a seguir usa a Skip cláusula no Visual Basic para ignorar as primeiras quatro cadeias de caracteres em uma matriz de cadeias de caracteres antes de retornar as cadeias de caracteres restantes na matriz.
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
O exemplo de código a seguir usa a Skip While cláusula no Visual Basic para ignorar as cadeias de caracteres em uma matriz, enquanto a primeira letra da cadeia de caracteres é "a". As cadeias de caracteres restantes na matriz são retornadas.
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
Pegue
O exemplo de código a seguir usa a Take cláusula no Visual Basic para retornar as duas primeiras cadeias de caracteres em uma matriz de cadeias de caracteres.
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
O exemplo de código a seguir usa a Take While cláusula no Visual Basic para retornar cadeias de caracteres de uma matriz enquanto o comprimento da cadeia de caracteres é cinco ou menos.
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