Cet article a fait l’objet d’une traduction automatique. Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez également afficher le texte anglais dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte traduit.
Traduction
Anglais

Enumerable.ThenBy<TSource, TKey> méthode (IOrderedEnumerable<TSource>, Func<TSource, TKey>)

 

Date de publication : novembre 2016

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

Espace de noms:   System.Linq
Assembly:  System.Core (dans System.Core.dll)

public static IOrderedEnumerable<TSource> ThenBy<TSource, TKey>(
	this IOrderedEnumerable<TSource> source,
	Func<TSource, TKey> keySelector
)

Paramètres

source
Type: System.Linq.IOrderedEnumerable<TSource>

Un IOrderedEnumerable<TElement> qui contient les éléments à trier.

keySelector
Type: System.Func<TSource, TKey>

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

Valeur de retour

Type: System.Linq.IOrderedEnumerable<TSource>

Une IOrderedEnumerable<TElement> dont les éléments sont triés selon une clé.

Paramètres de type

TSource

Le type des éléments de source.

TKey

Le type de la clé retournée par keySelector.

Exception Condition
ArgumentNullException

source ou keySelector a la valeur null.

Cette méthode est implémentée à l’aide de l’exécution différée. L’exécution valeur de retour est un objet qui stocke toutes les informations qui sont requis pour effectuer l’action. La requête représentée par cette méthode n’est pas exécutée tant que l’objet est énumérée en appelant son GetEnumerator méthode directement ou à l’aide de foreach dans Visual C# ou For Each dans Visual Basic.

Pour classer une séquence selon les valeurs des éléments mêmes, spécifiez la fonction identity (x => x dans Visual C# ou Function(x) x dans Visual Basic) pour keySelector.

ThenBy et ThenByDescending sont définies pour étendre le type IOrderedEnumerable<TElement>, qui est également le type de retour de ces méthodes. Cette conception vous permet de spécifier plusieurs critères de tri en appliquant un nombre quelconque de ThenBy ou ThenByDescending méthodes.

System_CAPS_noteRemarque

Étant donné que IOrderedEnumerable<TElement> hérite IEnumerable<T>, vous pouvez appeler OrderBy ou OrderByDescending sur les résultats d’un appel à OrderBy, OrderByDescending, ThenBy ou ThenByDescending. Cela introduit un nouveau classement principal qui ignore le classement établie précédemment.

Cette méthode compare les clés à l’aide du comparateur par défaut Default.

Cette méthode effectue un tri stable. Autrement dit, si les clés de deux éléments sont égaux, l’ordre des éléments est conservé. En revanche, un tri instable ne conserve pas l’ordre des éléments qui ont la même clé.

Dans la syntaxe d’expression de requête, un orderby [first criterion], [second criterion] (Visual C#) ou Order By [first criterion], [second criterion] (Visual Basic) clause se traduit par un appel à ThenBy<TSource, TKey>.

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

string[] fruits = { "grape", "passionfruit", "banana", "mango", 
                      "orange", "raspberry", "apple", "blueberry" };

// Sort the strings first by their length and then 
//alphabetically by passing the identity selector function.
IEnumerable<string> query =
    fruits.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
*/

Plateforme Windows universelle
Disponible depuis 8
.NET Framework
Disponible depuis 3.5
Bibliothèque de classes portable
Pris en charge dans : plateformes .NET portables
Silverlight
Disponible depuis 2.0
Silverlight pour Windows Phone
Disponible depuis 7.0
Windows Phone
Disponible depuis 8.1
Retour au début
Afficher: