War diese Seite hilfreich?
Ihr Feedback ist uns wichtig. Teilen Sie uns Ihre Meinung mit.
Weiteres Feedback?
1500 verbleibende Zeichen
Exportieren (0) Drucken
Alle erweitern
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
Übersetzung
Original

Enumerable.ThenBy<TSource, TKey>-Methode (IOrderedEnumerable<TSource>, Func<TSource, TKey>)

Führt eine nachfolgende Sortierung der Elemente in einer Sequenz in aufsteigender Reihenfolge nach einem Schlüssel durch.

Namespace:  System.Linq
Assembly:  System.Core (in System.Core.dll)

public static IOrderedEnumerable<TSource> ThenBy<TSource, TKey>(
	this IOrderedEnumerable<TSource> source,
	Func<TSource, TKey> keySelector
)

Typparameter

TSource

Der Typ der Elemente von source.

TKey

Der Typ des von keySelector zurückgegebenen Schlüssels.

Parameter

source
Typ: System.Linq.IOrderedEnumerable<TSource>
Ein IOrderedEnumerable<TElement> mit den zu sortierenden Elementen.
keySelector
Typ: System.Func<TSource, TKey>
Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element.

Rückgabewert

Typ: System.Linq.IOrderedEnumerable<TSource>
Ein IOrderedEnumerable<TElement>, dessen Elemente nach einem Schlüssel sortiert werden.

Hinweis zur Verwendung

In Visual Basic und C# können Sie diese Methode als Instanzenmethode für ein beliebiges Objekt vom Typ IOrderedEnumerable<TSource> aufrufen. Bei Verwendung der Syntax für Instanzenmethoden lassen Sie den ersten Parameter aus. Weitere Informationen finden Sie unter Erweiterungsmethoden (Visual Basic) und Erweiterungsmethoden (C#-Programmierhandbuch).

AusnahmeBedingung
ArgumentNullException

source oder keySelector ist null.

Diese Methode wird mit verzögerter Ausführung implementiert. Der Wert der sofortigen Rückgabe ist ein Objekt, in dem alle zum Ausführen der Aktion erforderlichen Informationen gespeichert werden. Die von dieser Methode dargestellte Abfrage wird erst ausgeführt, wenn das Objekt entweder durch den direkten Aufruf der zugehörigen GetEnumerator-Methode oder mithilfe von foreach in Visual C# oder For Each in Visual Basic aufgelistet wird.

Um eine Sequenz nach den Werten der Elemente selbst zu sortieren, geben Sie die Identitätsfunktion (x => x in Visual C# oder Function(x) x in Visual Basic) für keySelector an.

ThenBy und ThenByDescending sind definiert, um den Typ IOrderedEnumerable<TElement> zu erweitern, der auch der Rückgabetyp dieser Methoden ist. Mithilfe dieses Entwurfs können Sie mehrere Sortierkriterien angeben, indem Sie eine beliebige Anzahl von ThenBy-Methoden oder ThenByDescending-Methoden anwenden.

HinweisHinweis

Weil IOrderedEnumerable<TElement> von IEnumerable<T> erbt, können Sie OrderBy oder OrderByDescending für die Ergebnisse eines Aufrufs von OrderBy, OrderByDescending, ThenBy oder ThenByDescending aufrufen. Hierdurch erfolgt eine neue primäre Sortierung, die die zuvor festgelegte Sortierung ignoriert.

Diese Methode vergleicht Schlüssel mithilfe des Standardgleichheitsvergleichs Default.

Diese Methode führt eine stabile Sortierung aus, d. h., bei zwei Elementen mit gleichem Schlüssel wird die Reihenfolge der Elemente beibehalten. Im Gegensatz dazu wird bei einer instabilen Sortierung die Reihenfolge von Elementen, die über den gleichen Schlüssel verfügen, nicht beibehalten.

In der Abfrageausdruckssyntax wird eine orderby [first criterion], [second criterion]-Klausel (Visual C#) oder Order By [first criterion], [second criterion]-Klausel (Visual Basic) in einen Aufruf von ThenBy übersetzt.

Im folgenden Codebeispiel wird veranschaulicht, wie Sie mit ThenBy<TSource, TKey>(IOrderedEnumerable<TSource>, Func<TSource, TKey>) eine sekundäre Sortierung der Elemente in einer Sequenz durchführen.


            string[] fruits = { "grape", "passionfruit", "banana", "mango", 
                                  "orange", "raspberry", "apple", "blueberry" };

            // Sort the strings first by their length and then 
            //alphabetically by passing the identity selector function.
            IEnumerable<string> query =
                fruits.OrderBy(fruit => fruit.Length).ThenBy(fruit => fruit);

            foreach (string fruit in query)
            {
                Console.WriteLine(fruit);
            }

            /*
                This code produces the following output:

                apple
                grape
                mango
                banana
                orange
                blueberry
                raspberry
                passionfruit
            */



.NET Framework

Unterstützt in: 4.5.2, 4.5.1, 4.5, 4, 3.5

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Portable Klassenbibliothek

Unterstützt in: Portable Klassenbibliothek

.NET für Windows Store-Apps

Unterstützt in: Windows 8

.NET für Windows Phone-Apps

Unterstützt in: Windows Phone 8, Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core-Rolle wird nicht unterstützt), Windows Server 2008 R2 (Server Core-Rolle wird mit SP1 oder höher unterstützt; Itanium wird nicht unterstützt)

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Community-Beiträge

HINZUFÜGEN
Microsoft führt eine Onlineumfrage durch, um Ihre Meinung zur MSDN-Website zu erfahren. Wenn Sie sich zur Teilnahme entscheiden, wird Ihnen die Onlineumfrage angezeigt, sobald Sie die MSDN-Website verlassen.

Möchten Sie an der Umfrage teilnehmen?
Anzeigen:
© 2015 Microsoft