Partilhar via


Classificando dados (Visual Basic)

Uma operação de classificação ordena os elementos de uma sequência com base em um ou mais atributos. O primeiro critério de classificação executa uma classificação primária nos elementos. Especificando um segundo critério de classificação, você pode classificar os elementos dentro de cada grupo de classificação primário.

A ilustração a seguir mostra os resultados de uma operação de classificação alfabética em uma sequência de caracteres.

Graphic that shows an alphabetical sort operation.

Os métodos de operador de consulta padrão que classificam dados estão listados na seção a seguir.

Métodos

Nome do método Description Sintaxe da expressão de consulta do Visual Basic Mais Informações
OrderBy Classifica os valores em ordem crescente. Order By Enumerable.OrderBy

Queryable.OrderBy
OrderByDescending Classifica os valores em ordem decrescente. Order By … Descending Enumerable.OrderByDescending

Queryable.OrderByDescending
EntãoPor Executa uma classificação secundária em ordem crescente. Order By …, … Enumerable.ThenBy

Queryable.ThenBy
EntãoPorDescendente Executa uma classificação secundária em ordem decrescente. Order By …, … Descending Enumerable.ThenByDescending

Queryable.ThenByDescending
Inverter Inverte a ordem dos elementos em uma coleção. Não aplicável. Enumerable.Reverse

Queryable.Reverse

Exemplos de sintaxe de expressão de consulta

Exemplos de classificação primária

Classificação Primária Ascendente

O exemplo a seguir demonstra como usar a Order By cláusula em uma consulta LINQ para classificar as cadeias de caracteres em uma matriz por comprimento de cadeia de caracteres, em ordem crescente.

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length
                Select word

Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' the
' fox
' quick
' brown
' jumps

Classificação Descendente Primária

O próximo exemplo demonstra como usar a Order By Descending cláusula em uma consulta LINQ para classificar as cadeias de caracteres pela primeira letra, em ordem decrescente.

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Substring(0, 1) Descending
                Select word

Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' the
' quick
' jumps
' fox
' brown

Exemplos de classificação secundária

Classificação Secundária Ascendente

O exemplo a seguir demonstra como usar a Order By cláusula em uma consulta LINQ para executar um tipo primário e secundário das cadeias de caracteres em uma matriz. As cadeias de caracteres são classificadas principalmente por comprimento e secundariamente pela primeira letra da string, ambas em ordem crescente.

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length, word.Substring(0, 1)
                Select word

Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' fox
' the
' brown
' jumps
' quick

Classificação Secundária Descendente

O próximo exemplo demonstra como usar a Order By Descending cláusula em uma consulta LINQ para executar uma classificação primária, em ordem crescente, e uma classificação secundária, em ordem decrescente. As cadeias de caracteres são ordenadas principalmente pelo comprimento e secundariamente pela primeira letra da cadeia de caracteres.

Dim words = {"the", "quick", "brown", "fox", "jumps"}

Dim sortQuery = From word In words
                Order By word.Length, word.Substring(0, 1) Descending
                Select word

Dim sb As New System.Text.StringBuilder()
For Each str As String In sortQuery
    sb.AppendLine(str)
Next

' Display the results.
MsgBox(sb.ToString())

' This code produces the following output:

' fox
' the
' quick
' jumps
' brown

Consulte também