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í
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
source
comparer
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