Queryable.OrderBy Metoda

Definicja

Sortuje elementy sekwencji w kolejności rosnącej.

Przeciążenia

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

Sortuje elementy sekwencji w kolejności rosnącej przy użyciu określonego modułu porównującego.

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

Sortuje elementy sekwencji w kolejności rosnącej zgodnie z kluczem.

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

Źródło:
Queryable.cs
Źródło:
Queryable.cs
Źródło:
Queryable.cs

Sortuje elementy sekwencji w kolejności rosnącej przy użyciu określonego modułu porównującego.

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)

Parametry typu

TSource

Typ elementów elementu source.

TKey

Typ klucza zwracanego przez funkcję reprezentowaną przez keySelectorfunkcję .

Parametry

source
IQueryable<TSource>

Sekwencja wartości do ustawienia w kolejności.

keySelector
Expression<Func<TSource,TKey>>

Funkcja wyodrębniania klucza z elementu.

comparer
IComparer<TKey>

Element IComparer<T> do porównywania kluczy.

Zwraca

Element IOrderedQueryable<T> , którego elementy są sortowane według klucza.

Wyjątki

source lub keySelectorcomparer ma wartość null.

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument type jest jednym z Func<T,TResult> typów. Dla tych parametrów można przekazać wyrażenie lambda i zostanie skompilowane do elementu Expression<TDelegate>.

Metoda OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) generuje obiekt MethodCallExpression , który reprezentuje wywołanie OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) siebie jako skonstruowaną metodę ogólną. Następnie przekazuje MethodCallExpression wartość do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider właściwość parametru source . Wynik wywołania CreateQuery<TElement>(Expression) jest rzutowany na typ IOrderedQueryable<T> i zwrócony.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażeń reprezentującego wywołanie OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) , zależy od implementacji typu parametru source . Oczekiwane zachowanie polega na sortowaniu elementów source na podstawie klucza uzyskanego przez wywołanie keySelector każdego elementu elementu source. Parametr comparer służy do porównywania kluczy.

Dotyczy

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

Źródło:
Queryable.cs
Źródło:
Queryable.cs
Źródło:
Queryable.cs

Sortuje elementy sekwencji w kolejności rosnącej zgodnie z kluczem.

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)

Parametry typu

TSource

Typ elementów elementu source.

TKey

Typ klucza zwracanego przez funkcję reprezentowaną przez keySelectorfunkcję .

Parametry

source
IQueryable<TSource>

Sekwencja wartości do ustawienia w kolejności.

keySelector
Expression<Func<TSource,TKey>>

Funkcja wyodrębniania klucza z elementu.

Zwraca

Element IOrderedQueryable<T> , którego elementy są sortowane według klucza.

Wyjątki

source lub keySelector ma wartość null.

Przykłady

W poniższym przykładzie kodu pokazano, jak używać OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) metody sortowania elementów sekwencji.

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

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument type jest jednym z Func<T,TResult> typów. Dla tych parametrów można przekazać wyrażenie lambda i zostanie skompilowane do elementu Expression<TDelegate>.

Metoda OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) generuje obiekt MethodCallExpression , który reprezentuje wywołanie OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) siebie jako skonstruowaną metodę ogólną. Następnie przekazuje MethodCallExpression wartość do CreateQuery<TElement>(Expression) metody IQueryProvider reprezentowanej przez Provider właściwość parametru source . Wynik wywołania CreateQuery<TElement>(Expression) jest rzutowany na typ IOrderedQueryable<T> i zwrócony.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażeń reprezentującego wywołanie OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) , zależy od implementacji typu parametru source . Oczekiwane zachowanie polega na sortowaniu elementów source na podstawie klucza uzyskanego przez wywołanie keySelector każdego elementu elementu source.

Dotyczy