Partage via


Queryable.OrderBy Méthode

Définition

Trie les éléments d'une séquence dans l'ordre croissant.

Surcharges

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

Trie les éléments d'une séquence dans l'ordre croissant à l'aide d'un comparateur spécifié.

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)

Trie les éléments d'une séquence dans l'ordre croissant selon une clé.

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

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

Trie les éléments d'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> ^ OrderBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedQueryable<TSource> OrderBy<TSource,TKey> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
public static System.Linq.IOrderedQueryable<TSource> OrderBy<TSource,TKey> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member OrderBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function OrderBy(Of TSource, TKey) (source As IQueryable(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.

TKey

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

Paramètres

source
IQueryable<TSource>

Séquence de valeurs à classer.

keySelector
Expression<Func<TSource,TKey>>

Fonction permettant d'extraire une clé d'un é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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) méthode génère un MethodCallExpression qui représente l’appel OrderBy<TSource,TKey>(IQueryable<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 OrderBy<TSource,TKey>(IQueryable<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 trie les éléments de en fonction de source la clé obtenue en appelant keySelector sur chaque élément de source. Le comparer paramètre est utilisé pour comparer des clés.

S’applique à

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)

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

Trie les éléments d'une séquence dans l'ordre croissant selon une clé.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IOrderedQueryable<TSource> ^ OrderBy(System::Linq::IQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IOrderedQueryable<TSource> OrderBy<TSource,TKey> (this System.Linq.IQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member OrderBy : System.Linq.IQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function OrderBy(Of TSource, TKey) (source As IQueryable(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.

TKey

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

Paramètres

source
IQueryable<TSource>

Séquence de valeurs à classer.

keySelector
Expression<Func<TSource,TKey>>

Fonction permettant d'extraire une clé d'un é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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<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 } };

    // Sort the Pet objects in the array by Pet.Age.
    IEnumerable<Pet> query =
        pets.AsQueryable().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
*/
Structure Pet
    Public Name As String
    Public Age As Integer
End Structure

Shared Sub OrderByEx1()
    Dim pets() As Pet = {New Pet With {.Name = "Barley", .Age = 8}, _
                         New Pet With {.Name = "Boots", .Age = 4}, _
                         New Pet With {.Name = "Whiskers", .Age = 1}}

    ' Sort the Pet objects in the array by Pet.Age.
    Dim query As IEnumerable(Of Pet) = _
                pets.AsQueryable().OrderBy(Function(pet) pet.Age)

    Dim output As New System.Text.StringBuilder
    For Each pet As Pet In query
        output.AppendLine(String.Format("{0} - {1}", pet.Name, pet.Age))
    Next

    ' Display the output.
    MsgBox(output.ToString())
End Sub

' This code produces the following output:

' Whiskers - 1
' Boots - 4
' Barley - 8

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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) méthode génère un MethodCallExpression qui représente l’appel OrderBy<TSource,TKey>(IQueryable<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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) dépend de l’implémentation du type du source paramètre. Le comportement attendu est qu’il trie les éléments de en fonction de source la clé obtenue en appelant keySelector sur chaque élément de source.

S’applique à