Enumerable.OrderBy Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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.
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- orderby yan tümcesi (C# Başvurusu)
- Order By Clause (Visual Basic)
Ş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.
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)