Enumerable.OrderBy Metoda

Definice

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

Přetížení

Name Description
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
Zdroj:
OrderBy.cs
Zdroj:
OrderBy.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::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 prvků .source

TKey

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

Parametry

source
IEnumerable<TSource>

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

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč z elementu.

Návraty

Jejíž IOrderedEnumerable<TElement> 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 se nespustí, dokud objekt nevyčte buď voláním metody GetEnumerator přímo nebo pomocí foreach v jazyce C# nebo For Each v Visual Basic.

Pokud chcete pořadí seřadit podle hodnot samotných prvků, zadejte funkci identity (x => x v jazyce C# nebo Function(x) x v Visual Basic) pro keySelector.

Dva metody jsou definovány pro rozšíření typu IOrderedEnumerable<TElement>, 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. ThenBya ThenByDescending také vrátit IOrderedEnumerable<TElement>, což znamená libovolný počet po sobě jdoucích volání nebo ThenByThenByDescending může být provedeno.

Note

Vzhledem k tomuIOrderedEnumerable<TElement>, že dědí z IEnumerable<T>, můžete zavolat OrderBy nebo OrderByDescending na výsledky volání OrderBy, OrderByDescendingThenBy nebo ThenByDescending. Tím se zavádí nové primární řazení, které ignoruje dříve zavedené ř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 dotazu se klauzule orderby (C#) nebo Order By (Visual Basic) překládá na vyvolání OrderBy.

Viz také

Platí pro

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

Zdroj:
OrderBy.cs
Zdroj:
OrderBy.cs
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 prvků .source

TKey

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

Parametry

source
IEnumerable<TSource>

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

keySelector
Func<TSource,TKey>

Funkce, která extrahuje klíč z elementu.

comparer
IComparer<TKey>

Porovnávat IComparer<T> klíče.

Návraty

Jejíž IOrderedEnumerable<TElement> 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 se nespustí, dokud objekt nevyčte buď voláním metody GetEnumerator přímo nebo pomocí foreach v jazyce C# nebo For Each v Visual Basic.

Pokud chcete pořadí seřadit podle hodnot samotných prvků, zadejte funkci identity (x => x v jazyce C# nebo Function(x) x v Visual Basic) pro keySelector.

Dva metody jsou definovány pro rozšíření typu IOrderedEnumerable<TElement>, 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. ThenBya ThenByDescending také vrátit IOrderedEnumerable<TElement>, což znamená libovolný počet po sobě jdoucích volání nebo ThenByThenByDescending může být provedeno.

Note

Vzhledem k tomuIOrderedEnumerable<TElement>, že dědí z IEnumerable<T>, můžete zavolat OrderBy nebo OrderByDescending na výsledky volání OrderBy, OrderByDescendingThenBy nebo ThenByDescending. Tím se zavádí nové primární řazení, které ignoruje dříve zavedené řazení.

Pokud comparer ano null, použije se k porovnání klíčů výchozí porovnávač 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