Compartilhar via


Particionamento de Dados (Visual Basic)

Particionamento em LINQ refere-se à operação de dividir uma sequência de entrada em duas seções sem reorganizar os elementos e, depois, 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 três elementos seguintes.

Illustration that shows three LINQ partitioning operations.

Os métodos de 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
Ignorar Ignora elementos até uma posição especificada na sequência. Skip Enumerable.Skip

Queryable.Skip
SkipWhile Ignora elementos com base em uma função de predicado até que um elemento não satisfaça a condição. Skip While Enumerable.SkipWhile

Queryable.SkipWhile
Take Aceita elementos até uma posição especificada na sequência. Take Enumerable.Take

Queryable.Take
TakeWhile Aceita elementos com base em uma função de predicado até que um elemento não satisfaça a condição. Take While Enumerable.TakeWhile

Queryable.TakeWhile
Chunk 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

Ignorar

O exemplo de código a seguir usa a cláusula Skip no Visual Basic para ignorar as quatro primeiras 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 cláusula Skip While 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

Take

O exemplo de código a seguir usa a cláusula Take 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 cláusula Take While 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

Confira também