Auf Englisch lesen

Freigeben über


Queryable.ThenBy Methode

Definition

Führt eine nachfolgende Sortierung der Elemente in einer Sequenz in aufsteigender Reihenfolge durch

Überlädt

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)

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

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

Führt mithilfe eines angegebenen Vergleichs eine nachfolgende Sortierung der Elemente in einer Sequenz in aufsteigender Reihenfolge durch

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

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

C#
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.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
IOrderedQueryable<TSource>

Ein IOrderedQueryable<T> mit den zu sortierenden Elementen.

keySelector
Expression<Func<TSource,TKey>>

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

Gibt zurück

Ein IOrderedQueryable<T>, dessen Elemente nach einem Schlüssel sortiert werden

Ausnahmen

source oder keySelector ist null.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) eine sekundäre Reihenfolge der Elemente in einer Sequenz ausgeführt wird.

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

Hinweise

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 Lambdaausdruck übergeben, der zu einem Expression<TDelegate>kompiliert wird.

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

Das Abfrageverhalten, das beim Ausführen einer Ausdrucksstruktur auftritt, die den Aufruf ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) darstellt, hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass eine sekundäre Art der Elemente von source basierend auf dem Schlüssel ausgeführt wird, der durch aufrufen keySelector jedes Element von sourceabgerufen wird. Alle zuvor eingerichteten Sortierreihenfolgen werden beibehalten.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

Quelle:
Queryable.cs
Quelle:
Queryable.cs
Quelle:
Queryable.cs

Führt mithilfe eines angegebenen Vergleichs eine nachfolgende Sortierung der Elemente in einer Sequenz in aufsteigender Reihenfolge durch

C#
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
C#
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);

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
IOrderedQueryable<TSource>

Ein IOrderedQueryable<T> mit den zu sortierenden Elementen.

keySelector
Expression<Func<TSource,TKey>>

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

comparer
IComparer<TKey>

Ein IComparer<T> zum Vergleichen von Schlüsseln.

Gibt zurück

Ein IOrderedQueryable<T>, dessen Elemente nach einem Schlüssel sortiert werden

Ausnahmen

source oder keySelector oder comparer ist null.

Hinweise

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 Lambdaausdruck übergeben, der zu einem Expression<TDelegate>kompiliert wird.

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

Das Abfrageverhalten, das beim Ausführen einer Ausdrucksstruktur auftritt, die den Aufruf ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) darstellt, hängt von der Implementierung des Typs des source Parameters ab. Das erwartete Verhalten besteht darin, dass eine sekundäre Art der Elemente von source basierend auf dem Schlüssel ausgeführt wird, der durch aufrufen keySelector jedes Element von sourceabgerufen wird. Alle zuvor eingerichteten Sortierreihenfolgen werden beibehalten. Der comparer Parameter wird verwendet, um Schlüsselwerte zu vergleichen.

Gilt für:

.NET 9 und andere Versionen
Produkt Versionen
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1
UWP 10.0