Partilhar via


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.

Operação de classificação LINQ

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

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ões de consulta

Bb546145.collapse_all(pt-br,VS.110).gifExemplos de classificação primária

Bb546145.collapse_all(pt-br,VS.110).gifClassificaçã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
            */

Bb546145.collapse_all(pt-br,VS.110).gifClassificaçã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
            */

Bb546145.collapse_all(pt-br,VS.110).gifExemplos de classificação secundária

Bb546145.collapse_all(pt-br,VS.110).gifClassificaçã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
            */

Bb546145.collapse_all(pt-br,VS.110).gifClassificaçã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)

System.Linq

Conceitos

Visão geral operadores de consulta padrão