Sdílet prostřednictvím


Řazení dat

Operaci řazení objednávky prvky pořadí na základě jednoho nebo více atributů.První kritérium řazení provádí primární řazení prvků.Zadáním druhé kritérium řazení můžete seřadit prvky v rámci každé skupiny primární řazení.

Následující obrázek ukazuje výsledky operace podle abecedy v posloupnosti znaků.

LINQ – operace řazení

V následující části jsou uvedeny metody operátor standardního dotazu, které data seřadit.

Metody

Název metody

Description

Syntaxi výrazu dotazu C#

Visual BasicSyntaxe dotazu výraz

Další informace

Řadit podle

Seřadí hodnoty ve vzestupném pořadí.

orderby

Order By

Enumerable.OrderBy``2

Queryable.OrderBy``2

OrderByDescending

Seřadí hodnoty v sestupném pořadí.

orderby … descending

Order By … Descending

Enumerable.OrderByDescending``2

Queryable.OrderByDescending``2

ThenBy

Provádí sekundární seřadit ve vzestupném pořadí.

orderby …, …

Order By …, …

Enumerable.ThenBy``2

Queryable.ThenBy``2

ThenByDescending

Provádí sekundární seřadit v sestupném pořadí.

orderby …, … descending

Order By …, … Descending

Enumerable.ThenByDescending``2

Queryable.ThenByDescending``2

Změnit směr

Změní pořadí prvků v kolekci.

Nelze použít

Nelze použít

Enumerable.Reverse``1

Queryable.Reverse``1

Příklady syntaxe výraz dotazu

Příklady primární řazení

Primární vzestupné řazení

Následující příklad demonstruje použití orderby (Order By v jazyce Visual Basic) klauzule dotazu LINQ k řazení řetězce v poli Délka řetězce ve vzestupném pořadí.

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

Primární sestupné řazení

Následující příklad demonstruje použití orderbydescending (Order By Descending v jazyce Visual Basic) klauzule dotazu LINQ k jejich první písmeno v sestupném pořadí řazení řetězce.

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

Sekundární příklady řazení

Sekundární vzestupné řazení

Následující příklad demonstruje použití orderby (Order By v jazyce Visual Basic) klauzule dotazu LINQ provádět primární a sekundární řazení řetězce v poli.Řetězce jsou seřazeny především podle délky a druhotně první písmeno řetězec, obě ve vzestupném pořadí.

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

Sekundární sestupné řazení

Následující příklad demonstruje použití orderbydescending (Order By Descending v jazyce Visual Basic) klauzule LINQ dotazu provést primární seřadit ve vzestupném pořadí a sekundární řazení sestupně.Řetězce jsou seřazeny především podle délky a druhotně první písmeno řetězec.

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

Viz také

Úkoly

Postupy: Řazení výsledků klauzule join (Průvodce programováním v C#)

Postupy: Řazení výsledků dotazu pomocí LINQ (Visual Basic)

Postupy: Řazení nebo filtrování textových dat podle libovolného slova či pole (LINQ)

Referenční dokumentace

orderby – klauzule (Referenční dokumentace jazyka C#)

Order By – klauzule (Visual Basic)

System.Linq

Koncepty

Přehled standardních operátorů dotazu