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.
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