Udostępnij za pośrednictwem


Sortowanie danych

Operację sortowania zamówień elementy sekwencję, na podstawie jednego lub więcej atrybutów.Pierwszym kryterium sortowania wykonuje podstawowego sortowania elementów.Określając drugiego kryterium sortowania, można sortować elementy w ramach każdej grupy podstawowej sortowania.

Następująca ilustracja pokazuje wyniki operacji sortowania alfabetycznego, na sekwencji znaków.

Operacja sortowania programu LINQ

Metody operator standardowej kwerendy, które sortować dane są wymienione w poniższej sekcji.

Metody

Nazwa metody

Opis

Kwerendy języka C# składni wyrażenia

Visual BasicSkładni wyrażenia kwerendy

Więcej informacji

OrderBy

Sortuje wartości w kolejności rosnącej.

orderby

Order By

Enumerable.OrderBy

Queryable.OrderBy

OrderByDescending

Sortuje wartości w kolejności malejącej.

orderby … descending

Order By … Descending

Enumerable.OrderByDescending

Queryable.OrderByDescending

ThenBy

Wykonuje drugie sortowanie w kolejności rosnącej.

orderby …, …

Order By …, …

Enumerable.ThenBy

Queryable.ThenBy

ThenByDescending

Wykonuje drugie sortowanie w kolejności malejącej.

orderby …, … descending

Order By …, … Descending

Enumerable.ThenByDescending

Queryable.ThenByDescending

Odwróć

Odwraca kolejność elementów w kolekcji.

Nie dotyczy.

Nie dotyczy.

Enumerable.Reverse<TSource>

Queryable.Reverse<TSource>

Przykłady składni wyrażenia kwerendy

Bb546145.collapse_all(pl-pl,VS.110).gifPrzykłady sortowania podstawowego

Bb546145.collapse_all(pl-pl,VS.110).gifSortowanie w kolejności rosnącej podstawowy

Poniższy przykład demonstruje, jak używać orderby (Order By w języku Visual Basic) klauzula kwerendy LINQ do sortowania ciągi w tablicy przez długość łańcucha, w kolejności rosnącej.


        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(pl-pl,VS.110).gifPodstawowy malejący porządek sortowania

Kolejnym przykładzie przedstawiono sposób użycia orderbydescending (Order By Descending w języku Visual Basic) klauzula kwerendy LINQ do sortowania ciągi przez ich pierwszą literę w kolejności malejącej.


        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(pl-pl,VS.110).gifPomocnicze przykłady sortowania

Bb546145.collapse_all(pl-pl,VS.110).gifSortowanie w kolejności rosnącej pomocniczy

Poniższy przykład demonstruje, jak używać orderby (Order By w języku Visual Basic) klauzula kwerendy LINQ do wykonania sortowania podstawowego i pomocniczego, ciągów w tablicy.Ciągi są sortowane, przede wszystkim przez długość i rozpowszechnienia przez pierwszą literę ciągu, zarówno w kolejności rosnącej.


        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(pl-pl,VS.110).gifPomocniczy malejący porządek sortowania

Kolejnym przykładzie przedstawiono sposób użycia orderbydescending (Order By Descending w języku Visual Basic) klauzula kwerendy LINQ do wykonania sortowania podstawowego, w rosnącej kolejności i wtórnych sortowania, w kolejności malejącej.Ciągi są sortowane, przede wszystkim przez długość i rozpowszechnienia przez pierwszą literę ciągu.


        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
            */

Zobacz też

Zadania

Jak: uporządkowania wyników klauzuli Join (Podręcznik programowania C#)

Jak: sortowania wyników kwerendy przy użyciu LINQ (Visual Basic)

Jak: sortowanie lub filtrowanie danych tekst przez każdy wyraz lub pole (LINQ)

Informacje

Klauzula OrderBy (C# odniesienia)

Kolejność według klauzuli (Visual Basic)

System.Linq

Koncepcje

Omówienie operatory kwerendy standardowe