Compartilhar via


Classificação de 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. Ao especificar um segundo critério de classificação, você pode classificar os elementos em cada grupo de classificação primária.

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

Gráfico que mostra uma operação de classificação alfabética.

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

Métodos

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

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

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

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

Queryable.ThenByDescending
Reverter 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 crescente primária

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 decrescente primária

O exemplo a seguir 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 crescente secundária

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, em segundo lugar, pela primeira letra da cadeia de caracteres, 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 decrescente secundária

O exemplo a seguir 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 classificadas principalmente por comprimento e, em segundo lugar, 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