Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

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

 

Veröffentlicht: Oktober 2016

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

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
)

Parameter

source
Type: System.Linq.IOrderedEnumerable<TSource>

Ein IOrderedEnumerable<TElement> mit den zu sortierenden Elementen.

keySelector
Type: System.Func<TSource, TKey>

Eine Funktion zum Extrahieren eines Schlüssels aus jedem Element.

Rückgabewert

Type: System.Linq.IOrderedEnumerable<TSource>

Ein IOrderedEnumerable<TElement> dessen Elemente nach einem Schlüssel sortiert werden.

Typparameter

TSource

Der Typ der Elemente von source.

TKey

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

Exception Condition
ArgumentNullException

source oder keySelector ist null.

Diese Methode wird mit verzögerter Ausführung implementiert. Der sofortige Rückgabewert ist ein Objekt, das alle Informationen gespeichert hat, die zum Ausführen der Aktion erforderlich sind. Die von dieser Methode dargestellte Abfrage wird nicht ausgeführt, bis das Objekt aufgelistet wird, entweder durch Aufrufen der GetEnumerator -Methode direkt oder mithilfe von foreach in Visual C# oder For Each in Visual Basic.

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

ThenBy und ThenByDescending sind definiert, um den Typ erweitern IOrderedEnumerable<TElement>, dies ist auch der Rückgabetyp dieser Methoden. Dieser Entwurf ermöglicht es Ihnen, mehrere Sortierkriterien angeben, indem Sie die Anwendung eine beliebige Anzahl von ThenBy oder ThenByDescending Methoden.

System_CAPS_noteHinweis

Da IOrderedEnumerable<TElement> erbt von IEnumerable<T>, rufen Sie OrderBy oder OrderByDescending auf die Ergebnisse eines Aufrufs von OrderBy, OrderByDescending, ThenBy oder ThenByDescending. Auf diese Weise führt eine neue primäre Sortierung, die die zuvor festgelegte Sortierung ignoriert.

Diese Methode vergleicht Schlüssel mithilfe des Standardvergleichs Default.

Diese Methode führt eine stabile Sortierung. Das heißt, ist die Schlüssel der zwei Elemente gleich sind, die Reihenfolge der Elemente beibehalten. Im Gegensatz dazu behält eine instabile Sortierung die Reihenfolge der Elemente nicht den gleichen Schlüssel verfügen.

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

Im folgenden Codebeispiel wird veranschaulicht, wie Sie ThenBy<TSource, TKey>(IOrderedEnumerable<TSource>, Func<TSource, TKey>) um eine nachfolgende 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
*/

Universelle Windows-Plattform
Verfügbar seit 8
.NET Framework
Verfügbar seit 3.5
Portierbare Klassenbibliothek
Unterstützt in: portierbare .NET-Plattformen
Silverlight
Verfügbar seit 2.0
Windows Phone Silverlight
Verfügbar seit 7.0
Windows Phone
Verfügbar seit 8.1
Zurück zum Anfang
Anzeigen: