Queryable.ThenByDescending Méthode

Définition

Réalise un classement des éléments d'une séquence dans l'ordre décroissant.Performs a subsequent ordering of the elements in a sequence in descending order.

Surcharges

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

Réalise un classement des éléments d'une séquence dans l'ordre décroissant selon une clé.Performs a subsequent ordering of the elements in a sequence in descending order, according to a key.

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

Réalise un classement des éléments d'une séquence dans l'ordre décroissant à l'aide d'un comparateur spécifié.Performs a subsequent ordering of the elements in a sequence in descending order by using a specified comparer.

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

Réalise un classement des éléments d'une séquence dans l'ordre décroissant selon une clé.Performs a subsequent ordering of the elements in a sequence in descending order, according to a key.

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)

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

TKey

Type de la clé retournée par la fonction représentée par keySelector.The type of the key returned by the function represented by keySelector.

Paramètres

source
IOrderedQueryable<TSource>

IOrderedQueryable<T> qui contient les éléments à trier.An IOrderedQueryable<T> that contains elements to sort.

keySelector
Expression<Func<TSource,TKey>>

Fonction permettant d'extraire une clé de chaque élément.A function to extract a key from each element.

Retours

IOrderedQueryable<T> dont les éléments sont triés dans l'ordre décroissant selon une clé.An IOrderedQueryable<T> whose elements are sorted in descending order according to a key.

Exceptions

source ou keySelector est null.source or keySelector is null.

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l' Func<T,TResult> argument de type est l’un des types.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée dans un Expression<TDelegate>.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

La ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) méthode génère un MethodCallExpression qui représente l' ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) appel de lui-même comme une méthode générique construite.The ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) method generates a MethodCallExpression that represents calling ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) itself as a constructed generic method. Il MethodCallExpression passe ensuite à la IQueryProvider CreateQuery<TElement>(Expression) méthode de représenté par la Provider propriété du source paramètre.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter. Le résultat de l' CreateQuery<TElement>(Expression) appel de est casté en type IOrderedQueryable<T> et retourné.The result of calling CreateQuery<TElement>(Expression) is cast to type IOrderedQueryable<T> and returned.

Le comportement de la requête qui se produit suite à l’exécution d’une arborescence d’expressions ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) qui représente l’appel de dépend de l’implémentation source du type du paramètre.The query behavior that occurs as a result of executing an expression tree that represents calling ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) depends on the implementation of the type of the source parameter. Le comportement attendu est qu’il effectue un tri secondaire des éléments de source dans l’ordre décroissant, en fonction de la clé obtenue en appelant keySelector sur chaque élément sourcede.The expected behavior is that it performs a secondary sort of the elements of source in descending order, based on the key obtained by invoking keySelector on each element of source. Tous les ordres de tri précédemment établis sont conservés.All previously established sort orders are preserved.

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

Réalise un classement des éléments d'une séquence dans l'ordre décroissant à l'aide d'un comparateur spécifié.Performs a subsequent ordering of the elements in a sequence in descending order by using a specified comparer.

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);
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)

Paramètres de type

TSource

Le type des éléments de source.The type of the elements of source.

TKey

Type de la clé retournée par la fonction keySelector.The type of the key that is returned by the keySelector function.

Paramètres

source
IOrderedQueryable<TSource>

IOrderedQueryable<T> qui contient les éléments à trier.An IOrderedQueryable<T> that contains elements to sort.

keySelector
Expression<Func<TSource,TKey>>

Fonction permettant d'extraire une clé de chaque élément.A function to extract a key from each element.

comparer
IComparer<TKey>

IComparer<T> pour comparer les clés.An IComparer<T> to compare keys.

Retours

Collection dont les éléments sont triés par ordre décroissant selon une clé.A collection whose elements are sorted in descending order according to a key.

Exceptions

source ou keySelector ou comparer a la valeur null.source or keySelector or comparer is null.

Exemples

L’exemple de code suivant montre comment utiliser ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) pour effectuer un classement secondaire des éléments d’une séquence dans l’ordre décroissant à l’aide d’un comparateur personnalisé.The following code example demonstrates how to use ThenByDescending<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) to perform a secondary ordering of the elements in a sequence in descending order by using a custom comparer.

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

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l' Func<T,TResult> argument de type est l’un des types.This method has at least one parameter of type Expression<TDelegate> whose type argument is one of the Func<T,TResult> types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée dans un Expression<TDelegate>.For these parameters, you can pass in a lambda expression and it will be compiled to an Expression<TDelegate>.

La ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) méthode génère un MethodCallExpression qui représente l' ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) appel de lui-même comme une méthode générique construite.The ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) method generates a MethodCallExpression that represents calling ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) itself as a constructed generic method. Il MethodCallExpression passe ensuite à la IQueryProvider CreateQuery<TElement>(Expression) méthode de représenté par la Provider propriété du source paramètre.It then passes the MethodCallExpression to the CreateQuery<TElement>(Expression) method of the IQueryProvider represented by the Provider property of the source parameter. Le résultat de l' CreateQuery<TElement>(Expression) appel de est casté en type IOrderedQueryable<T> et retourné.The result of calling CreateQuery<TElement>(Expression) is cast to type IOrderedQueryable<T> and returned.

Le comportement de la requête qui se produit suite à l’exécution d’une arborescence d’expressions ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) qui représente l’appel de dépend de l’implémentation source du type du paramètre.The query behavior that occurs as a result of executing an expression tree that represents calling ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) depends on the implementation of the type of the source parameter. Le comportement attendu est qu’il effectue un tri secondaire des éléments de source dans l’ordre décroissant, en fonction de la clé obtenue en appelant keySelector sur chaque élément sourcede.The expected behavior is that it performs a secondary sort of the elements of source in descending order, based on the key obtained by invoking keySelector on each element of source. Tous les ordres de tri précédemment établis sont conservés.All previously established sort orders are preserved. Le comparer paramètre est utilisé pour comparer les valeurs de clés.The comparer parameter is used to compare key values.

S’applique à