Enumerable.OrderBy Yöntem

Tanım

Bir dizinin öğelerini artan düzende sıralar.

Aşırı Yüklemeler

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

Bir dizinin öğelerini bir anahtara göre artan düzende sıralar.

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

Belirtilen bir karşılaştırıcıyı kullanarak bir dizinin öğelerini artan düzende sıralar.

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

Kaynak:
OrderBy.cs
Kaynak:
OrderBy.cs
Kaynak:
OrderBy.cs
Kaynak:
OrderBy.cs
Kaynak:
OrderBy.cs

Bir dizinin öğelerini bir anahtara göre artan düzende sıralar.

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)

Tür Parametreleri

TSource

öğelerinin sourcetürü.

TKey

tarafından keySelectordöndürülen anahtarın türü.

Parametreler

source
IEnumerable<TSource>

Sıralanması gereken bir değer dizisi.

keySelector
Func<TSource,TKey>

Bir öğeden anahtar ayıklama işlevi.

Döndürülenler

IOrderedEnumerable<TElement> Öğeleri bir anahtara göre sıralanmış olan.

Özel durumlar

source veya keySelector şeklindedir null.

Örnekler

Aşağıdaki kod örneği, bir dizinin öğelerini sıralamak için nasıl kullanılacağını OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) gösterir.

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

Açıklamalar

Bu yöntem ertelenen yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, nesne doğrudan GetEnumerator yöntemini çağırarak veya C# içinde foreach veya Visual Basic'de For Each kullanılarak numaralandırılana kadar yürütülür.

Bir diziyi öğelerin değerlerine göre sıralamak için, x => x için identity işlevini (C# dilinde Function(x) x veya Visual Basic'da keySelector) belirtin.

Bu yöntemin dönüş türü olan türünü IOrderedEnumerable<TElement>genişletmek için iki yöntem tanımlanır. ve olmak üzere ThenByThenByDescendingbu iki yöntem, bir sırayı sıralamak için ek sıralama ölçütleri belirtmenizi sağlar. ThenBy ve ThenByDescending ayrıca bir IOrderedEnumerable<TElement>döndürür, yani herhangi bir sayıda ardışık çağrı ThenBy yapılabilir veya ThenByDescending yapılabilir.

Note

öğesinden devralındığındanIOrderedEnumerable<TElement>, veya çağrısının IEnumerable<T>sonuçlarında , OrderByOrderByDescendingveya OrderByöğesini çağırabilirsiniz OrderByDescendingThenBy.ThenByDescending Bunu yapmak, önceden oluşturulmuş sıralamayı yoksayan yeni bir birincil sıralama sağlar.

Bu yöntem, varsayılan karşılaştırıcıyı kullanarak anahtarları karşılaştırır Default.

Bu yöntem kararlı bir sıralama gerçekleştirir; diğer bir ifadeyle, iki öğeye ait anahtarlar eşitse öğelerin sırası korunur. Buna karşılık, kararsız sıralama aynı anahtara sahip öğelerin sırasını korumaz.

Sorgu ifadesi söz diziminde, orderby (C#) veya Order By (Visual Basic) yan tümcesi, OrderBy çağrısına çevrilir.

Ayrıca bkz.

Şunlara uygulanır

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

Kaynak:
OrderBy.cs
Kaynak:
OrderBy.cs
Kaynak:
OrderBy.cs
Kaynak:
OrderBy.cs
Kaynak:
OrderBy.cs

Belirtilen bir karşılaştırıcıyı kullanarak bir dizinin öğelerini artan düzende sıralar.

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)

Tür Parametreleri

TSource

öğelerinin sourcetürü.

TKey

tarafından keySelectordöndürülen anahtarın türü.

Parametreler

source
IEnumerable<TSource>

Sıralanması gereken bir değer dizisi.

keySelector
Func<TSource,TKey>

Bir öğeden anahtar ayıklama işlevi.

comparer
IComparer<TKey>

Anahtarları karşılaştırmak için bir IComparer<T> .

Döndürülenler

IOrderedEnumerable<TElement> Öğeleri bir anahtara göre sıralanmış olan.

Özel durumlar

source veya keySelector şeklindedir null.

Açıklamalar

Bu yöntem ertelenen yürütme kullanılarak uygulanır. Hemen dönüş değeri, eylemi gerçekleştirmek için gereken tüm bilgileri depolayan bir nesnedir. Bu yöntemle temsil edilen sorgu, nesne doğrudan GetEnumerator yöntemini çağırarak veya C# içinde foreach veya Visual Basic'de For Each kullanılarak numaralandırılana kadar yürütülür.

Bir diziyi öğelerin değerlerine göre sıralamak için, x => x için identity işlevini (C# dilinde Function(x) x veya Visual Basic'da keySelector) belirtin.

Bu yöntemin dönüş türü olan türünü IOrderedEnumerable<TElement>genişletmek için iki yöntem tanımlanır. ve olmak üzere ThenByThenByDescendingbu iki yöntem, bir sırayı sıralamak için ek sıralama ölçütleri belirtmenizi sağlar. ThenBy ve ThenByDescending ayrıca bir IOrderedEnumerable<TElement>döndürür, yani herhangi bir sayıda ardışık çağrı ThenBy yapılabilir veya ThenByDescending yapılabilir.

Note

öğesinden devralındığındanIOrderedEnumerable<TElement>, veya çağrısının IEnumerable<T>sonuçlarında , OrderByOrderByDescendingveya OrderByöğesini çağırabilirsiniz OrderByDescendingThenBy.ThenByDescending Bunu yapmak, önceden oluşturulmuş sıralamayı yoksayan yeni bir birincil sıralama sağlar.

ise comparernull, anahtarları karşılaştırmak için varsayılan karşılaştırıcı Default kullanılır.

Bu yöntem kararlı bir sıralama gerçekleştirir; diğer bir ifadeyle, iki öğeye ait anahtarlar eşitse öğelerin sırası korunur. Buna karşılık, kararsız sıralama aynı anahtara sahip öğelerin sırasını korumaz.

Ayrıca bkz.

Şunlara uygulanır