Udostępnij za pośrednictwem


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 porównania.

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 porównania.

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 zwróconego przez funkcję reprezentowaną przez keySelectorelement .

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 do IComparer<T> porównywania kluczy.

Zwraca

Element IOrderedQueryable<T> , którego elementy są sortowane zgodnie z kluczem.

Wyjątki

source lub keySelectorcomparer jest null.

Uwagi

Ta metoda ma co najmniej jeden parametr typu Expression<TDelegate> , którego argument type jest jednym z Func<T,TResult> typów. W przypadku 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 element 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 element do CreateQuery<TElement>(Expression) metody reprezentowanej IQueryProvider przez Provider właściwość parametru source . Wynik wywołania CreateQuery<TElement>(Expression) jest rzutowany na typ IOrderedQueryable<T> i zwracany.

Zachowanie zapytania, które występuje w wyniku wykonania drzewa wyrażeń, które reprezentuje 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 source elementów 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 zwróconego przez funkcję reprezentowaną przez keySelectorelement .

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 zgodnie z kluczem.

Wyjątki

source lub keySelector to null.

Przykłady

Poniższy przykład kodu przedstawia sposób OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 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. W przypadku 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 element 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 element do CreateQuery<TElement>(Expression) metody reprezentowanej IQueryProvider przez Provider właściwość parametru source . Wynik wywołania CreateQuery<TElement>(Expression) jest rzutowany na typ IOrderedQueryable<T> i zwracany.

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

Dotyczy