Sortieren von Daten (C#)Sorting Data (C#)

Bei einem Sortiervorgang werden die Elemente einer Sequenz auf Grundlage eines oder mehrerer Attribute sortiert.A sorting operation orders the elements of a sequence based on one or more attributes. Mit dem ersten Sortierkriterium wird eine primäre Sortierung der Elemente ausgeführt.The first sort criterion performs a primary sort on the elements. Sie können die Elemente innerhalb jeder primären Sortiergruppe sortieren, indem Sie ein zweites Sortierkriterium angeben.By specifying a second sort criterion, you can sort the elements within each primary sort group.

Die folgende Abbildung zeigt das Ergebnis eines alphabetischen Sortiervorgangs bei einer Zeichensequenz.The following illustration shows the results of an alphabetical sort operation on a sequence of characters.

LINQ-SortierungsvorgangLINQ Sorting Operation

Die Methoden des Standardabfrageoperators, die Daten sortieren, sind im folgenden Abschnitt aufgeführt.The standard query operator methods that sort data are listed in the following section.

MethodenMethods

MethodennameMethod Name BeschreibungDescription C#-AbfrageausdruckssyntaxC# Query Expression Syntax Weitere InformationenMore Information
OrderByOrderBy Sortiert Werte in aufsteigender ReihenfolgeSorts values in ascending order. orderby Enumerable.OrderBy

Queryable.OrderBy
OrderByDescendingOrderByDescending Sortiert Werte in absteigender ReihenfolgeSorts values in descending order. orderby … descending Enumerable.OrderByDescending

Queryable.OrderByDescending
ThenByThenBy Führt eine sekundäre Sortierung in aufsteigender Reihenfolge durchPerforms a secondary sort in ascending order. orderby …, … Enumerable.ThenBy

Queryable.ThenBy
ThenByDescendingThenByDescending Führt eine sekundäre Sortierung in absteigender Reihenfolge durchPerforms a secondary sort in descending order. orderby …, … descending Enumerable.ThenByDescending

Queryable.ThenByDescending
ReverseReverse Kehrt die Reihenfolge der Elemente in einer Auflistung umReverses the order of the elements in a collection. Nicht zutreffend.Not applicable. Enumerable.Reverse

Queryable.Reverse

Beispiele für die AbfrageausdruckssyntaxQuery Expression Syntax Examples

Primäre SortierungsbeispielePrimary Sort Examples

Primäre aufsteigende SortierungPrimary Ascending Sort

Im folgenden Beispiel wird veranschaulicht, wie man die orderby-Klausel in einer LINQ-Abfrage verwendet, um die Zeichenfolgen in einem Array in aufsteigender Reihenfolge nach der Länge der Zeichenfolgen zu sortieren.The following example demonstrates how to use the orderby clause in a LINQ query to sort the strings in an array by string length, in ascending order.

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äre absteigende SortierungPrimary Descending Sort

Im nächsten Beispiel wird veranschaulicht, wie man die orderby``descending-Klausel in einer LINQ-Abfrage verwendet, um die Zeichenfolgen in absteigender Reihenfolge nach ihrem ersten Buchstaben zu sortieren.The next example demonstrates how to use the orderby``descending clause in a LINQ query to sort the strings by their first letter, in descending order.

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äre SortierungsbeispieleSecondary Sort Examples

Sekundäre aufsteigende SortierungSecondary Ascending Sort

Im folgenden Beispiel wird veranschaulicht, wie man die orderby-Klausel in einer LINQ-Abfrage verwendet, um eine primäre und eine sekundäre Sortierung der Zeichenfolgen in einem Array durchzuführen.The following example demonstrates how to use the orderby clause in a LINQ query to perform a primary and secondary sort of the strings in an array. Die Zeichenfolgen werden primär nach der Länge und sekundär nach dem ersten Buchstaben der Zeichenfolge sortiert, beide Male in aufsteigender Reihenfolge.The strings are sorted primarily by length and secondarily by the first letter of the string, both in ascending order.

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äre absteigende SortierungSecondary Descending Sort

Im nächsten Beispiel wird gezeigt, wie man die orderby``descending-Klausel in einer LINQ-Abfrage verwendet, um eine primäre Sortierung in aufsteigender Reihenfolge und eine sekundäre Sortierung in absteigender Reihenfolge durchzuführen.The next example demonstrates how to use the orderby``descending clause in a LINQ query to perform a primary sort, in ascending order, and a secondary sort, in descending order. Die Zeichenfolgen werden primär nach der Länge und sekundär nach dem ersten Buchstaben der Zeichenfolge sortiert.The strings are sorted primarily by length and secondarily by the first letter of the string.

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

Siehe auchSee Also

System.Linq
Standard Query Operators Overview (C#) (Übersicht der Standardabfrageoperatoren (C#))Standard Query Operators Overview (C#)
orderby-Klauselorderby clause
Gewusst wie: Sortieren der Ergebnisse einer Join-KlauselHow to: Order the Results of a Join Clause
Vorgehensweise: Sortieren oder Filtern von Textdaten nach einem beliebigen Wort oder Feld (LINQ) (C#)How to: Sort or Filter Text Data by Any Word or Field (LINQ) (C#)