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