Sdílet prostřednictvím


Queryable.OrderBy Metoda

Definice

Seřadí prvky sekvence ve vzestupném pořadí.

Přetížení

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

Seřadí prvky sekvence ve vzestupném pořadí pomocí zadaného porovnávače.

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

Seřadí prvky sekvence vzestupně podle klíče.

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

Zdroj:
Queryable.cs
Zdroj:
Queryable.cs
Zdroj:
Queryable.cs

Seřadí prvky sekvence ve vzestupném pořadí pomocí zadaného porovnávače.

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ů .source

TKey

Typ klíče vráceného funkcí, která je reprezentována hodnotou keySelector.

Parametry

source
IQueryable<TSource>

Posloupnost hodnot, které chcete uspořádat.

keySelector
Expression<Func<TSource,TKey>>

Funkce pro extrahování klíče z elementu.

comparer
IComparer<TKey>

An IComparer<T> pro porovnání klíčů.

Návraty

Objekt IOrderedQueryable<T> , jehož prvky jsou seřazeny podle klíče.

Výjimky

sourcecomparer nebo keySelector je null.

Poznámky

Tato metoda má alespoň jeden parametr typu Expression<TDelegate> , jehož argument typu je jedním z Func<T,TResult> typů. Pro tyto parametry můžete předat výraz lambda, který se zkompiluje do Expression<TDelegate>.

Metoda OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) vygeneruje metodu MethodCallExpression , která představuje volání OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) sebe sama jako konstruovanou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery<TElement>(Expression) reprezentované Provider vlastností parametru source . Výsledek volání CreateQuery<TElement>(Expression) je přetypován na typ IOrderedQueryable<T> a vrácen.

Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazů, který představuje volání OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) , závisí na implementaci typu parametru source . Očekávané chování je, že seřadí prvky na source základě klíče získaného vyvoláním keySelector každého prvku .source Parametr comparer se používá k porovnání klíčů.

Platí pro

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

Zdroj:
Queryable.cs
Zdroj:
Queryable.cs
Zdroj:
Queryable.cs

Seřadí prvky sekvence vzestupně podle klíče.

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ů .source

TKey

Typ klíče vráceného funkcí, která je reprezentována hodnotou keySelector.

Parametry

source
IQueryable<TSource>

Posloupnost hodnot, které chcete uspořádat.

keySelector
Expression<Func<TSource,TKey>>

Funkce pro extrahování klíče z elementu.

Návraty

Objekt IOrderedQueryable<T> , jehož prvky jsou seřazeny podle klíče.

Výjimky

source nebo keySelector je null.

Příklady

Následující příklad kódu ukazuje, jak použít OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) k řazení prvků sekvence.

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

Poznámky

Tato metoda má alespoň jeden parametr typu Expression<TDelegate> , jehož argument typu je jedním z Func<T,TResult> typů. Pro tyto parametry můžete předat výraz lambda, který se zkompiluje do Expression<TDelegate>.

Metoda OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) vygeneruje metodu MethodCallExpression , která představuje volání OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) sebe sama jako konstruovanou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery<TElement>(Expression) reprezentované Provider vlastností parametru source . Výsledek volání CreateQuery<TElement>(Expression) je přetypován na typ IOrderedQueryable<T> a vrácen.

Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazů, který představuje volání OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) , závisí na implementaci typu parametru source . Očekávané chování je, že seřadí prvky na source základě klíče získaného vyvoláním keySelector každého prvku .source

Platí pro