(0) exportieren 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

Queryable.ThenBy<TSource, TKey>-Methode (IOrderedQueryable<TSource>, Expression<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 IOrderedQueryable<TSource> ThenBy<TSource, TKey>(
	this IOrderedQueryable<TSource> source,
	Expression<Func<TSource, TKey>> keySelector
)

Typparameter

TSource

Der Typ der Elemente von source.

TKey

Der Typ des Schlüssels, der von der von keySelector dargestellten Funktion zurückgegeben wird.

Parameter

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

Rückgabewert

Typ: System.Linq.IOrderedQueryable<TSource>
Ein IOrderedQueryable<T>, 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 IOrderedQueryable<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 verfügt über mindestens einen Parameter vom Typ Expression<TDelegate>, dessen Typargument einer der Func<T, TResult>-Typen ist. Für diese Parameter können Sie einen Lambda-Ausdruck übergeben, und dieser wird zu einer Expression<TDelegate> kompiliert.

Die ThenBy<TSource, TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource, TKey>>)-Methode generiert einen MethodCallExpression, der den Aufruf von ThenBy<TSource, TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource, TKey>>) durch sich selbst als konstruierte generische Methode darstellt. Anschließend übergibt sie die MethodCallExpression an die CreateQuery<TElement>(Expression)-Methode des IQueryProvider, der von der Provider-Eigenschaft des source-Parameters dargestellt wird. Das Ergebnis des Aufrufs von CreateQuery<TElement>(Expression) wird in den Typ IOrderedQueryable<T> umgewandelt und zurückgegeben.

Das Abfrageverhalten, das durch das Ausführen einer Ausdrucksbaumstruktur auftritt, die einen Aufruf von ThenBy<TSource, TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource, TKey>>) darstellt, hängt von der Implementierung des Typs des source-Parameters ab. Es wird erwartet, dass eine sekundäre Sortierung der Elemente von source anhand des Schlüssels ausgeführt wird, der durch den Aufruf von keySelector für jedes Element von source ermittelt wird. Alle zuvor festgelegten Sortierreihenfolgen werden beibehalten.

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


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

            // Sort the strings first by their length and then 
            // alphabetically by passing the identity selector function.
            IEnumerable<string> query =
                fruits.AsQueryable()
                .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
Anzeigen:
© 2014 Microsoft