Enumerable.OrderBy Metoda

Definice

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

Přetížení

OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)

Seřadí prvky sekvence ve vzestupném pořadí 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 ve vzestupném pořadí podle klíče.

public static System.Linq.IOrderedEnumerable<TSource> OrderBy<TSource,TKey> (this System.Collections.Generic.IEnumerable<TSource> source, Func<TSource,TKey> keySelector);

Parametry typu

TSource

Typ prvků objektu source.

TKey

Typ klíče vráceného nástrojem keySelector.

Parametry

source
IEnumerable<TSource>

Posloupnost hodnot, které se mají uspořádat.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč z 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 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
*/

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.

Pro rozšíření typu IOrderedEnumerable<TElement>jsou definovány dvě metody , což je návratový typ této metody. Tyto dvě metody, konkrétně ThenBy a ThenByDescending, umožňují zadat další kritéria řazení pro řazení sekvence. 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

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 dotazu se klauzule (C#) nebo Order By (Visual Basic) překládá na vyvolání OrderBy.

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

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 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);

Parametry typu

TSource

Typ prvků objektu source.

TKey

Typ klíče vráceného nástrojem keySelector.

Parametry

source
IEnumerable<TSource>

Posloupnost hodnot, které se mají uspořádat.

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč z 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.

Pro rozšíření typu IOrderedEnumerable<TElement>jsou definovány dvě metody , což je návratový typ této metody. Tyto dvě metody, konkrétně ThenBy a ThenByDescending, umožňují zadat další kritéria řazení pro řazení sekvence. 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

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íč.

Viz také

Platí pro

.NET 9 a další verze
Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0