Classificação de 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 sã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ões 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ões 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 por comprimento da seqüência 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
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 orderbydescending (Order By Descending em Visual Basic) cláusula em uma consulta LINQ para classificar as seqüências de caracteres pela 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
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 executar uma classificação primária e secundária das seqüências de caracteres em uma matriz.As seqüências de caracteres são classificadas principalmente por comprimento e depois pela primeira letra da cadeia, 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 orderbydescending (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 ordem decrescente.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: ordem dos resultados de uma cláusula de associação (guia de programação do C#)
Como: classificar os resultados da consulta usando LINQ (Visual Basic)
Como: classificar ou filtrar dados de texto por qualquer palavra ou campo (LINQ)
Referência
cláusula OrderBy (referência de C#)
Ordem por cláusula (Visual Basic)