Exporter (0) Imprimer
Développer tout
Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte.
Traduction
Source

Enumerable.OrderBy<TSource, TKey>, méthode (IEnumerable<TSource>, Func<TSource, TKey>)

Trie les é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> OrderBy<TSource, TKey>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector
)

Paramètres de type

TSource

Type des éléments de source.

TKey

Type de clé retournée par keySelector.

Paramètres

source
Type : System.Collections.Generic.IEnumerable<TSource>
Séquence de valeurs à classer.
keySelector
Type : System.Func<TSource, TKey>
Fonction permettant d'extraire une clé d'un élément.

Valeur de retour

Type : System.Linq.IOrderedEnumerable<TSource>
IOrderedEnumerable<TElement> dont les éléments sont triés d'après une clé.

Remarque sur l'utilisation

En Visual Basic et C#, vous pouvez appeler cette méthode comme une méthode d'instance sur n'importe quel objet de type IEnumerable<TSource>. Lorsque vous utilisez la syntaxe des méthodes d'instance pour appeler cette méthode, omettez le premier paramètre. Pour plus d'informations, consultez Méthodes d'extension (Visual Basic) ou Méthodes d'extension (Guide de programmation C#).

ExceptionCondition
ArgumentNullException

source ou keySelector est null.

Cette méthode est implémentée par exécution différée. La valeur de retour immédiate est un objet qui stocke toutes les informations requises pour réaliser l'action. La requête représentée par cette méthode n'est pas exécutée tant que l'objet n'est pas énuméré, soit par l'appel de sa méthode GetEnumerator directement, soit à l'aide de foreach dans Visual C# ou de For Each dans Visual Basic.

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

Deux méthodes sont définies pour étendre le type IOrderedEnumerable<TElement>, qui correspond au type de retour de cette méthode. Ces deux méthodes, à savoir ThenBy et ThenByDescending, vous permettent de spécifier des critères de tri supplémentaires pour trier une séquence. ThenBy et ThenByDescending retournent également un IOrderedEnumerable<TElement>, ce qui signifie qu'il est possible de passer autant d'appels consécutifs que souhaité à ThenBy ou ThenByDescending.

RemarqueRemarque

IOrderedEnumerable<TElement> héritant de IEnumerable<T>, vous pouvez appeler OrderBy ou OrderByDescending aux résultats d'un appel de OrderBy, OrderByDescending, ThenBy ou ThenByDescending. Cette opération introduit un nouveau classement principal qui ignore le précédent.

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

Cette méthode réalise un tri stable : si les clés de deux éléments sont égales, le classement des éléments est conservé. Cependant, un tri instable ne conserve pas l'ordre des éléments qui ont la même clé.

Dans une syntaxe d'expression de requête, une clause orderby (Visual C#) ou Order By (Visual Basic) se traduit en appel de OrderBy.

L'exemple de code suivant montre comment utiliser OrderBy<TSource, TKey>(IEnumerable<TSource>, Func<TSource, TKey>) pour trier les éléments d'une séquence.


            class Pet
            {
                public string Name { get; set; }
                public int Age { get; set; }
            }

            public static void OrderByEx1()
            {
                Pet[] pets = { new Pet { Name="Barley", Age=8 },
                               new Pet { Name="Boots", Age=4 },
                               new Pet { Name="Whiskers", Age=1 } };

                IEnumerable<Pet> query = pets.OrderBy(pet => pet.Age);

                foreach (Pet pet in query)
                {
                    Console.WriteLine("{0} - {1}", pet.Name, pet.Age);
                }
            }

            /*
             This code produces the following output:

             Whiskers - 1
             Boots - 4
             Barley - 8
            */



.NET Framework

Pris en charge dans : 4, 3.5

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

Pris en charge dans :

Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2

Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.

Ajouts de la communauté

AJOUTER
Afficher:
© 2014 Microsoft