Share via


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.

Operação de classificação LINQ

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

Enumerable.OrderBy

Queryable.OrderBy

OrderByDescending

Classifica valores em ordem decrescente.

orderby … descending

Order By … Descending

Enumerable.OrderByDescending

Queryable.OrderByDescending

ThenBy

Executa uma classificação secundária em ordem crescente.

orderby …, …

Order By …, …

Enumerable.ThenBy

Queryable.ThenBy

ThenByDescending

Executa uma classificação secundária em ordem decrescente.

orderby …, … descending

Order By …, … Descending

Enumerable.ThenByDescending

Queryable.ThenByDescending

Reverter

Inverte a ordem dos elementos em uma coleção.

Não aplicável.

Não aplicável.

Enumerable.Reverse<TSource>

Queryable.Reverse<TSource>

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: ordem dos Resultados de uma cláusula de associação (guia de programação TRANSLATION FROM VPE FOR CSHARP)

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)

System.Linq

Conceitos

Visão geral operadores de consulta padrão