Queryable.ThenByDescending Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Führt eine nachfolgende Sortierung der Elemente in einer Sequenz in absteigender Reihenfolge durch
Überlädt
ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) |
Führt eine nachfolgende Sortierung der Elemente in einer Sequenz in absteigender Reihenfolge nach einem Schlüssel durch |
ThenByDescending<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 absteigender Reihenfolge durch |
ThenByDescending<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 absteigender Reihenfolge nach einem Schlüssel durch
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedQueryable<TSource> ^ ThenByDescending(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IOrderedQueryable<TSource> ThenByDescending<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member ThenByDescending : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenByDescending(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey))) As IOrderedQueryable(Of TSource)
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 in absteigender Reihenfolge nach einem Schlüssel sortiert werden
Ausnahmen
source
oder keySelector
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 ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) -Methode generiert eine MethodCallExpression , die den Aufruf ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) selbst als konstruierte generische Methode darstellt. Anschließend wird an MethodCallExpression die CreateQuery<TElement>(Expression) -Methode des übergeben, das 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 als Ergebnis der Ausführung einer Ausdrucksstruktur auftritt, die den Aufruf ThenByDescending<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
in absteigender Reihenfolge ausgeführt wird, basierend auf dem Schlüssel, der durch Aufrufen keySelector
für jedes Element von source
abgerufen wird. Alle zuvor eingerichteten Sortierreihenfolgen werden beibehalten.
Gilt für:
ThenByDescending<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 absteigender Reihenfolge durch
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedQueryable<TSource> ^ ThenByDescending(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenByDescending<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenByDescending<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member ThenByDescending : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenByDescending(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), comparer As IComparer(Of TKey)) As IOrderedQueryable(Of TSource)
Typparameter
- TSource
Der Typ der Elemente von source
.
- TKey
Der Typ des Schlüssels, der von der keySelector
-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
Eine Auflistung, deren Elemente in absteigender Reihenfolge nach einem Schlüssel sortiert werden.
Ausnahmen
source
oder keySelector
oder comparer
ist null
.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) eines benutzerdefinierten Vergleichs eine sekundäre Reihenfolge der Elemente in einer Sequenz in absteigender Reihenfolge ausgeführt wird.
public class CaseInsensitiveComparer : IComparer<string>
{
public int Compare(string x, string y)
{
return string.Compare(x, y, true);
}
}
public static void ThenByDescendingEx1()
{
string[] fruits =
{ "apPLe", "baNanA", "apple", "APple", "orange", "BAnana", "ORANGE", "apPLE" };
// Sort the strings first ascending by their length and
// then descending using a custom case insensitive comparer.
IEnumerable<string> query =
fruits.AsQueryable()
.OrderBy(fruit => fruit.Length)
.ThenByDescending(fruit => fruit, new CaseInsensitiveComparer());
foreach (string fruit in query)
Console.WriteLine(fruit);
}
/*
This code produces the following output:
apPLe
apple
APple
apPLE
orange
ORANGE
baNanA
BAnana
*/
Class CaseInsensitiveComparer
Implements IComparer(Of String)
Function Compare(ByVal x As String, ByVal y As String) As Integer _
Implements IComparer(Of String).Compare
' Compare values and ignore case.
Return String.Compare(x, y, True)
End Function
End Class
Sub ThenByDescendingEx1()
Dim fruits() As String = _
{"apPLe", "baNanA", "apple", "APple", "orange", "BAnana", "ORANGE", "apPLE"}
' Sort the strings first ascending by their length and
' then descending by using a custom case insensitive comparer.
Dim query = fruits.AsQueryable() _
.OrderBy(Function(fruit) fruit.Length) _
.ThenByDescending(Function(fruit) fruit, New CaseInsensitiveComparer())
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
' Display the results.
MsgBox(output.ToString())
End Sub
' This code produces the following output:
' apPLe
' apple
' APple
' apPLE
' orange
' ORANGE
' baNanA
' BAnana
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 wird an MethodCallExpression die CreateQuery<TElement>(Expression) -Methode des übergeben, das 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 als Ergebnis der Ausführung 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
in absteigender Reihenfolge ausgeführt wird, basierend auf dem Schlüssel, der durch Aufrufen keySelector
für jedes Element von source
abgerufen wird. Alle zuvor eingerichteten Sortierreihenfolgen werden beibehalten. Der comparer
Parameter wird verwendet, um Schlüsselwerte zu vergleichen.