Classificando Dados
Os elementos de uma seqüência com base nos atributos de um ou mais ordens de uma operação de classificação. 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ária.
A ilustração a seguir mostra os resultados de uma operação de classificação alfabética em uma seqüência de caracteres.
Os métodos de operador de consulta padrão que classificar os dados estão listados na seção a seguir.
Métodos
Nome do método |
Descrição |
C# Expressão de consulta sintaxe |
Visual BasicSintaxe de expressão de consulta |
Mais informações |
---|---|---|---|---|
OrderBy |
Classifica valores em ordem crescente. |
orderby |
Order By |
|
OrderByDescending |
Classifica valores em ordem decrescente. |
orderby … descending |
Order By … Descending |
|
ThenBy |
Executa uma classificação secundária em ordem crescente. |
orderby …, … |
Order By …, … |
|
ThenByDescending |
Executa uma classificação secundária em ordem decrescente. |
orderby …, … descending |
Order By …, … Descending |
|
Reverter |
Inverte a ordem dos elementos em uma coleção. |
Não aplicável. |
Não aplicável. |
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 o orderby (Order By em Visual Basic) cláusula em uma consulta LINQ para classificar as seqüências de caracteres em uma matriz de comprimento de seqüência de caracteres, em crescente ordem.
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
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Length
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
fox
quick
brown
jumps
*/
Classificação decrescente primária
O exemplo a seguir demonstra como usar o orderby descending (Order By Descending em Visual Basic) cláusula em uma consulta LINQ para classificar as seqüências de caracteres pela sua primeira letra em decrescente ordem.
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
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Substring(0, 1) descending
select word;
foreach (string str in query)
Console.WriteLine(str);
/* 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 o orderby (Order By em Visual Basic) cláusula em uma consulta LINQ para realizar uma classificação primária e secundária das seqüências de caracteres em um array. As seqüências de caracteres são classificadas, principalmente por comprimento e, depois, pela primeira letra da string, ambos 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
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Length, word.Substring(0, 1)
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
fox
the
brown
jumps
quick
*/
Classificação decrescente secundária
O exemplo a seguir demonstra como usar o orderby descending (Order By Descending em Visual Basic) cláusula em uma consulta LINQ para realizar uma classificação principal, em ordem crescente e uma classificação secundária, em decrescente ordem. As seqüências de caracteres são classificadas, principalmente por comprimento e, depois, pela primeira letra da seqüência 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
string[] words = { "the", "quick", "brown", "fox", "jumps" };
IEnumerable<string> query = from word in words
orderby word.Length, word.Substring(0, 1) descending
select word;
foreach (string str in query)
Console.WriteLine(str);
/* This code produces the following output:
the
fox
quick
jumps
brown
*/
Consulte também
Tarefas
Como: Classificar resultados de consulta usando o LINQ (Visual Basic)
Como: Classificar ou filtrar dados de texto por qualquer palavra ou campo (LINQ)
Referência
cláusula OrderBy (referência de TRANSLATION FROM VPE FOR CSHARP)
Cláusula Order By (Visual Basic)