Enumerable.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>(IEnumerable<TSource>, Func<TSource,TKey>) |
Seřadí prvky sekvence vzestupně podle klíče. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Seřadí prvky sekvence ve vzestupném pořadí pomocí zadaného porovnávače. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- Zdroj:
- OrderBy.cs
- Zdroj:
- OrderBy.cs
- Zdroj:
- OrderBy.cs
Seřadí prvky sekvence vzestupně podle klíče.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedEnumerable<TSource> ^ OrderBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector);
public static System.Linq.IOrderedEnumerable<TSource> OrderBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector);
static member OrderBy : seq<'Source> * Func<'Source, 'Key> -> System.Linq.IOrderedEnumerable<'Source>
<Extension()>
Public Function OrderBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As IOrderedEnumerable(Of TSource)
Parametry typu
- TSource
Typ elementů .source
- TKey
Typ klíče vráceného nástrojem keySelector
.
Parametry
- source
- IEnumerable<TSource>
Posloupnost hodnot, které chcete uspořádat.
- keySelector
- Func<TSource,TKey>
Funkce pro extrahování klíče z elementu.
Návraty
Objekt IOrderedEnumerable<TElement> , 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>(IEnumerable<TSource>, 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 } };
IEnumerable<Pet> query = pets.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
Sub OrderByEx1()
' Create an array of Pet objects.
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}}
' Order the Pet objects by their Age property.
Dim query As IEnumerable(Of Pet) =
pets.OrderBy(Function(pet) pet.Age)
Dim output As New System.Text.StringBuilder
For Each pt As Pet In query
output.AppendLine(pt.Name & " - " & pt.Age)
Next
' Display the output.
Console.WriteLine(output.ToString())
End Sub
' This code produces the following output:
'
' Whiskers - 1
' Boots - 4
' Barley - 8
Poznámky
Tato metoda se implementuje pomocí odloženého spuštění. Okamžitá návratová hodnota je objekt, který ukládá všechny informace potřebné k provedení akce. Dotaz reprezentovaný touto metodou není proveden, dokud objekt není výčet buď voláním jeho GetEnumerator
metody přímo, nebo pomocí foreach
v jazyce C# nebo For Each
v jazyce Visual Basic.
Pokud chcete pořadí pořadí podle hodnot samotných prvků, zadejte funkci identity (x => x
v jazyce C# nebo Function(x) x
Visual Basic) pro keySelector
.
Dvě metody jsou definovány pro rozšíření typu IOrderedEnumerable<TElement>, což je návratový typ této metody. Tyto dvě metody, a to a ThenBy
ThenByDescending
, umožňují zadat další kritéria řazení pro řazení posloupnosti. ThenBy
a ThenByDescending
také vrátit IOrderedEnumerable<TElement>, což znamená libovolný počet po sobě jdoucích volání ThenBy
nebo ThenByDescending
lze provést.
Poznámka
Protože IOrderedEnumerable<TElement> dědí z IEnumerable<T>, můžete volat OrderBy nebo OrderByDescending na výsledky volání OrderBy, OrderByDescendingThenBy nebo ThenByDescending. Tím se zavede nové primární řazení, které ignoruje dříve vytvořené pořadí.
Tato metoda porovnává klíče pomocí výchozího porovnávače Default.
Tato metoda provádí stabilní řazení; to znamená, že pokud jsou klíče dvou prvků stejné, pořadí prvků je zachováno. Naproti tomu nestabilní řazení nezachová pořadí prvků, které mají stejný klíč.
V syntaxi výrazu orderby
dotazu se klauzule (C#) nebo Order By
(Visual Basic) překládá na vyvolání výrazu OrderBy.
Viz také
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- orderby – klauzule (Referenční dokumentace jazyka C#)
- Order By – klauzule (Visual Basic)
Platí pro
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- Zdroj:
- OrderBy.cs
- Zdroj:
- OrderBy.cs
- Zdroj:
- OrderBy.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::IOrderedEnumerable<TSource> ^ OrderBy(System::Collections::Generic::IEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedEnumerable<TSource> OrderBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
public static System.Linq.IOrderedEnumerable<TSource> OrderBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member OrderBy : seq<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedEnumerable<'Source>
<Extension()>
Public Function OrderBy(Of TSource, TKey) (source As IEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IComparer(Of TKey)) As IOrderedEnumerable(Of TSource)
Parametry typu
- TSource
Typ elementů .source
- TKey
Typ klíče vráceného nástrojem keySelector
.
Parametry
- source
- IEnumerable<TSource>
Posloupnost hodnot, které chcete uspořádat.
- keySelector
- Func<TSource,TKey>
Funkce pro extrahování klíče z elementu.
- comparer
- IComparer<TKey>
An IComparer<T> pro porovnání klíčů.
Návraty
Objekt IOrderedEnumerable<TElement> , jehož prvky jsou seřazeny podle klíče.
Výjimky
source
nebo keySelector
je null
.
Poznámky
Tato metoda se implementuje pomocí odloženého spuštění. Okamžitá návratová hodnota je objekt, který ukládá všechny informace potřebné k provedení akce. Dotaz reprezentovaný touto metodou není proveden, dokud objekt není výčet buď voláním jeho GetEnumerator
metody přímo, nebo pomocí foreach
v jazyce C# nebo For Each
v jazyce Visual Basic.
Pokud chcete pořadí pořadí podle hodnot samotných prvků, zadejte funkci identity (x => x
v jazyce C# nebo Function(x) x
Visual Basic) pro keySelector
.
Dvě metody jsou definovány pro rozšíření typu IOrderedEnumerable<TElement>, což je návratový typ této metody. Tyto dvě metody, a to a ThenBy
ThenByDescending
, umožňují zadat další kritéria řazení pro řazení posloupnosti. ThenBy
a ThenByDescending
také vrátit IOrderedEnumerable<TElement>, což znamená libovolný počet po sobě jdoucích volání ThenBy
nebo ThenByDescending
lze provést.
Poznámka
Protože IOrderedEnumerable<TElement> dědí z IEnumerable<T>, můžete volat OrderBy nebo OrderByDescending na výsledky volání OrderBy, OrderByDescendingThenBy nebo ThenByDescending. Tím se zavede nové primární řazení, které ignoruje dříve vytvořené pořadí.
Pokud comparer
je null
, použije se k porovnání klíčů výchozí porovnávače Default .
Tato metoda provádí stabilní řazení; to znamená, že pokud jsou klíče dvou prvků stejné, pořadí prvků je zachováno. Naproti tomu nestabilní řazení nezachová pořadí prvků, které mají stejný klíč.
Viz také
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro