Enumerable.ThenBy 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í.
Provede následné řazení prvků ve vzestupném pořadí.
Přetížení
ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) |
Provede následné řazení prvků v sekvenci ve vzestupném pořadí podle klíče. |
ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Provede následné řazení prvků v sekvenci vzestupně pomocí zadaného porovnávače. |
ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>)
- Zdroj:
- OrderBy.cs
- Zdroj:
- OrderBy.cs
- Zdroj:
- OrderBy.cs
Provede následné řazení prvků v sekvenci ve vzestupném pořadí podle klíče.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedEnumerable<TSource> ^ ThenBy(System::Linq::IOrderedEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector);
public static System.Linq.IOrderedEnumerable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedEnumerable<TSource> source, Func<TSource,TKey> keySelector);
static member ThenBy : System.Linq.IOrderedEnumerable<'Source> * Func<'Source, 'Key> -> System.Linq.IOrderedEnumerable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedEnumerable(Of TSource), keySelector As Func(Of TSource, TKey)) As IOrderedEnumerable(Of TSource)
Parametry typu
- TSource
Typ prvků objektu source
.
- TKey
Typ klíče vráceného nástrojem keySelector
.
Parametry
- source
- IOrderedEnumerable<TSource>
Obsahuje IOrderedEnumerable<TElement> prvky, které se mají seřadit.
- keySelector
- Func<TSource,TKey>
Funkce, která extrahuje klíč z každého prvku.
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 ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) k provedení sekundárního pořadí prvků v sekvenci.
string[] fruits = { "grape", "passionfruit", "banana", "mango",
"orange", "raspberry", "apple", "blueberry" };
// Sort the strings first by their length and then
//alphabetically by passing the identity selector function.
IEnumerable<string> query =
fruits.OrderBy(fruit => fruit.Length).ThenBy(fruit => fruit);
foreach (string fruit in query)
{
Console.WriteLine(fruit);
}
/*
This code produces the following output:
apple
grape
mango
banana
orange
blueberry
raspberry
passionfruit
*/
' Create an array of strings.
Dim fruits() As String =
{"grape", "passionfruit", "banana", "mango",
"orange", "raspberry", "apple", "blueberry"}
' Sort the strings first by their length and then
' alphabetically by passing the identity function.
Dim query As IEnumerable(Of String) =
fruits _
.OrderBy(Function(fruit) fruit.Length) _
.ThenBy(Function(fruit) fruit)
' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
output.AppendLine(fruit)
Next
Console.WriteLine(output.ToString())
' This code produces the following output:
'
' apple
' grape
' mango
' banana
' orange
' blueberry
' raspberry
' passionfruit
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 řadit sekvenci podle hodnot samotných prvků, zadejte funkci identity (x => x
v jazyce C# nebo Function(x) x
Visual Basic) pro keySelector
.
ThenBy a ThenByDescending jsou definovány k rozšíření typu IOrderedEnumerable<TElement>, který je také návratový typ těchto metod. Tento návrh umožňuje zadat více kritérií řazení použitím libovolného ThenBy počtu metod nebo ThenByDescending .
Poznámka
Vzhledem k tomuIOrderedEnumerable<TElement>, že dědí z IEnumerable<T>, můžete volat OrderBy nebo OrderByDescending ve výsledcích volání OrderBy, OrderByDescendingThenBy nebo ThenByDescending. Tím se zavádí nové primární řazení, které ignoruje dříve stanovené řazení.
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 [first criterion], [second criterion]
dotazu se klauzule (C#) nebo Order By [first criterion], [second criterion]
(Visual Basic) překládá na vyvolání ThenBy.
Viz také
Platí pro
ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- Zdroj:
- OrderBy.cs
- Zdroj:
- OrderBy.cs
- Zdroj:
- OrderBy.cs
Provede následné řazení prvků v sekvenci vzestupně pomocí zadaného porovnávače.
public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
static System::Linq::IOrderedEnumerable<TSource> ^ ThenBy(System::Linq::IOrderedEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedEnumerable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
public static System.Linq.IOrderedEnumerable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member ThenBy : System.Linq.IOrderedEnumerable<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedEnumerable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedEnumerable(Of TSource), keySelector As Func(Of TSource, TKey), comparer As IComparer(Of TKey)) As IOrderedEnumerable(Of TSource)
Parametry typu
- TSource
Typ prvků objektu source
.
- TKey
Typ klíče vráceného nástrojem keySelector
.
Parametry
- source
- IOrderedEnumerable<TSource>
Obsahuje IOrderedEnumerable<TElement> prvky, které se mají seřadit.
- keySelector
- Func<TSource,TKey>
Funkce, která extrahuje klíč z každého prvku.
- comparer
- IComparer<TKey>
K IComparer<T> 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 řadit sekvenci podle hodnot samotných prvků, zadejte funkci identity (x => x
v jazyce C# nebo Function(x) x
Visual Basic) pro keySelector
.
ThenBy a ThenByDescending jsou definovány k rozšíření typu IOrderedEnumerable<TElement>, který je také návratový typ těchto metod. Tento návrh umožňuje zadat více kritérií řazení použitím libovolného ThenBy počtu metod nebo ThenByDescending .
Poznámka
Vzhledem k tomuIOrderedEnumerable<TElement>, že dědí z IEnumerable<T>, můžete volat OrderBy nebo OrderByDescending ve výsledcích volání OrderBy, OrderByDescendingThenBy nebo ThenByDescending. Tím se zavádí nové primární řazení, které ignoruje dříve stanovené řazení.
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íč.