Partager via


Queryable.ThenBy Méthode

Définition

Effectue un classement ultérieur des éléments dans une séquence dans l’ordre croissant.

Surcharges

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

Effectue un classement ultérieur des éléments dans une séquence dans l’ordre croissant à l’aide d’un comparateur spécifié.

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

Effectue un classement ultérieur des éléments dans une séquence dans l’ordre croissant en fonction d’une clé.

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

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

Effectue un classement ultérieur des éléments dans une séquence dans l’ordre croissant à l’aide d’un comparateur spécifié.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IOrderedQueryable<TSource> ^ ThenBy(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> ThenBy<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> ThenBy<TSource,TKey>(this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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);
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenBy(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

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>

Qui IOrderedQueryable<T> contient des éléments à trier.

keySelector
Expression<Func<TSource,TKey>>

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

comparer
IComparer<TKey>

Pour IComparer<T> comparer les clés.

Retours

Dont IOrderedQueryable<T> les éléments sont triés en fonction d’une clé.

Attributs

Exceptions

source comparer ou keySelector est null.

Remarques

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

La ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) méthode génère un qui représente l’appel MethodCallExpressionThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery<TElement>(Expression) méthode de l’objet 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 suite à 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 basés source sur la clé obtenue en appelant keySelector 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 à

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

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

Effectue un classement ultérieur des éléments dans une séquence dans l’ordre croissant en fonction d’une clé.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IOrderedQueryable<TSource> ^ ThenBy(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey>(this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey>(this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenBy(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

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>

Qui IOrderedQueryable<T> contient des éléments à trier.

keySelector
Expression<Func<TSource,TKey>>

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

Retours

Dont IOrderedQueryable<T> les éléments sont triés en fonction d’une clé.

Attributs

Exceptions

source ou keySelector est null.

Exemples

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

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
*/
Dim fruits() As String = _
    {"grape", "passionfruit", "banana", "mango", _
     "orange", "raspberry", "apple", "blueberry"}

' Sort the strings first by their length and then 
' alphabetically by passing the identity selector function.
Dim query = fruits.AsQueryable() _
    .OrderBy(Function(fruit) fruit.Length).ThenBy(Function(fruit) fruit)

' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next
MsgBox(output.ToString())

'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 de type est l’un des Func<T,TResult> types. Pour ces paramètres, vous pouvez passer une expression lambda et elle sera compilée à un Expression<TDelegate>.

La ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) méthode génère un qui représente l’appel MethodCallExpressionThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) lui-même en tant que méthode générique construite. Il passe ensuite la MethodCallExpressionCreateQuery<TElement>(Expression) méthode de l’objet 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 suite à 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 basés source sur la clé obtenue en appelant keySelector chaque élément de source. Tous les ordres de tri précédemment établis sont conservés.

S’applique à