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 dos 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 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
OrderByDescending 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
Reverse 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 cláusula Order By em uma consulta de LINQ para classificar as cadeias de caracteres em uma matriz segundo o tamanho da 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 seguinte demonstra como usar a cláusula Order By Descending em uma consulta de LINQ para classificar as cadeias de caracteres segundo sua 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 cláusula Order By em uma consulta de LINQ para executar uma classificação primária e uma classificação secundária das cadeias de caracteres em uma matriz. As cadeias de caracteres são classificadas primeiro segundo o tamanho e, depois, segundo a primeira letra da cadeia de caracteres, 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 seguinte demonstra como usar a cláusula Order By Descending em uma consulta de 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 primeiro segundo o tamanho e, depois, segundo a 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

Confira também