Lire en anglais

Partager via


Queryable.ThenBy Méthode

Définition

Réalise un classement des éléments d'une séquence dans l'ordre croissant.

Surcharges

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

Réalise un classement des éléments d'une séquence dans l'ordre croissant selon une clé.

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

Réalise un classement des éléments d'une séquence dans l'ordre croissant à l'aide d'un comparateur spécifié.

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

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Réalise un classement des éléments d'une séquence dans l'ordre croissant selon une clé.

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

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de la clé retournée par la fonction représentée par keySelector.

Paramètres

source
IOrderedQueryable<TSource>

IOrderedQueryable<T> qui contient les éléments à trier.

keySelector
Expression<Func<TSource,TKey>>

Fonction permettant d'extraire une clé de chaque élément.

Retours

IOrderedQueryable<T> dont les éléments sont triés selon une clé.

Exceptions

source ou keySelector est null.

Exemples

L’exemple de code suivant montre comment utiliser ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) pour effectuer un classement secondaire des éléments dans une séquence.

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

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l’argument type est l’un Func<T,TResult> des types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée dans un Expression<TDelegate>.

La ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) méthode génère un MethodCallExpression qui représente l’appel ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la CreateQuery<TElement>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre . Le résultat de l’appel CreateQuery<TElement>(Expression) est casté en type IOrderedQueryable<T> et retourné.

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il effectue un type secondaire des éléments de en fonction de source la clé obtenue en appelant keySelector sur chaque élément de source. Tous les ordres de tri précédemment établis sont conservés.

S’applique à

.NET 9 et autres versions
Produit Versions
.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>)

Source:
Queryable.cs
Source:
Queryable.cs
Source:
Queryable.cs

Réalise un classement des éléments d'une séquence dans l'ordre croissant à l'aide d'un comparateur spécifié.

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

Paramètres de type

TSource

Le type des éléments de source.

TKey

Type de la clé retournée par la fonction représentée par keySelector.

Paramètres

source
IOrderedQueryable<TSource>

IOrderedQueryable<T> qui contient les éléments à trier.

keySelector
Expression<Func<TSource,TKey>>

Fonction permettant d'extraire une clé de chaque élément.

comparer
IComparer<TKey>

IComparer<T> pour comparer les clés.

Retours

IOrderedQueryable<T> dont les éléments sont triés selon une clé.

Exceptions

source ou keySelector ou comparer a la valeur null.

Remarques

Cette méthode a au moins un paramètre de type Expression<TDelegate> dont l’argument type est l’un Func<T,TResult> des types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée dans un 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’appel ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) en tant que méthode générique construite. Il passe ensuite à MethodCallExpression la CreateQuery<TElement>(Expression) méthode du IQueryProvider représenté par la Provider propriété du source paramètre . Le résultat de l’appel CreateQuery<TElement>(Expression) est casté en type IOrderedQueryable<T> et retourné.

Le comportement de requête qui se produit à la suite de l’exécution d’une arborescence d’expressions qui représente l’appel ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il effectue un type secondaire des éléments de en fonction de source la clé obtenue en appelant keySelector sur chaque élément de source. Tous les ordres de tri précédemment établis sont conservés. Le comparer paramètre est utilisé pour comparer les valeurs de clé.

S’applique à

.NET 9 et autres versions
Produit Versions
.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