Queryable.OrderBy Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Seřadí prvky sekvence ve vzestupném pořadí.
Přetížení
| Name | Description |
|---|---|
| OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) |
Seřadí prvky sekvence ve vzestupném pořadí podle klíče. |
| 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>>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
Seřadí prvky sekvence ve vzestupném pořadí 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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 prvků .source
- TKey
Typ klíče vráceného funkcí, která je reprezentována keySelector.
Parametry
- source
- IQueryable<TSource>
Posloupnost hodnot, které se mají uspořádat.
- keySelector
- Expression<Func<TSource,TKey>>
Funkce, která extrahuje klíč z elementu.
Návraty
Jejíž IOrderedQueryable<T> prvky jsou seřazeny podle klíče.
- Atributy
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 a bude zkompilován do Expression<TDelegate>.
Metoda OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) vygeneruje MethodCallExpression , která představuje samotné volání OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery<TElement>(Expression) reprezentované Provider vlastností parametrusource. Výsledek volání CreateQuery<TElement>(Expression) se přetypuje na typ IOrderedQueryable<T> a vrátí se.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, 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í spočívá v tom, že seřadí prvky source na základě klíče získaného vyvoláním keySelector jednotlivých prvků source.
Platí pro
OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)
- Zdroj:
- Queryable.cs
- Zdroj:
- Queryable.cs
- 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);
[System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")]
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>
[<System.Diagnostics.CodeAnalysis.RequiresDynamicCode("Enumerating collections as IQueryable can require creating new generic types or methods, which requires creating code at runtime. This may not work when AOT compiling.")>]
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 prvků .source
- TKey
Typ klíče vráceného funkcí, která je reprezentována keySelector.
Parametry
- source
- IQueryable<TSource>
Posloupnost hodnot, které se mají uspořádat.
- keySelector
- Expression<Func<TSource,TKey>>
Funkce, která extrahuje klíč z elementu.
- comparer
- IComparer<TKey>
Porovnávat IComparer<T> klíče.
Návraty
Jejíž IOrderedQueryable<T> prvky jsou seřazeny podle klíče.
- Atributy
Výjimky
source nebo keySelectorcomparer 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 a bude zkompilován do Expression<TDelegate>.
Metoda OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) vygeneruje MethodCallExpression , která představuje samotné volání OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) jako vytvořenou obecnou metodu. Pak předá MethodCallExpression metodu IQueryProviderCreateQuery<TElement>(Expression) reprezentované Provider vlastností parametrusource. Výsledek volání CreateQuery<TElement>(Expression) se přetypuje na typ IOrderedQueryable<T> a vrátí se.
Chování dotazu, ke kterému dochází v důsledku spuštění stromu výrazu, 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í spočívá v tom, že seřadí prvky source na základě klíče získaného vyvoláním keySelector jednotlivých prvků source. Parametr comparer se používá k porovnání klíčů.