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
| 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 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
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 ertelenmiş 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, doğrudan yöntemini çağırarak GetEnumerator veya C# içinde veya For Each Visual Basic'te kullanarak foreach nesne numaralandırılana kadar yürütülür.
Bir diziyi öğelerin değerlerine göre sıralamak için keySelectoriçin identity işlevini (x => xC# dilinde veya Function(x) x Visual Basic'te) 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.
ThenByve ThenByDescending ayrıca herhangi bir sayıda ardışık çağrı ThenByThenByDescending yapılabilmesini sağlayan bir IOrderedEnumerable<TElement>döndürür.
Not
IOrderedEnumerable<TElement>' den IEnumerable<T>devralındığından , OrderByDescendingThenByThenByDescendingveya OrderByDescending çağrısının sonuçlarında veya öğesini OrderByçağırabilirsinizOrderBy. 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 öğe anahtarı 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 bir orderby (C#) veya Order By (Visual Basic) yan tümcesi çağrısına çevrilir OrderBy.
Ayrıca bkz.
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- orderby tümcesi (C# Başvurusu)
- Order By Tümcesi (Visual Basic)
Şunlara uygulanır
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- Kaynak:
- OrderBy.cs
- Kaynak:
- OrderBy.cs
- Kaynak:
- OrderBy.cs
Belirtilen 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 ertelenmiş 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, doğrudan yöntemini çağırarak GetEnumerator veya C# içinde veya For Each Visual Basic'te kullanarak foreach nesne numaralandırılana kadar yürütülür.
Bir diziyi öğelerin değerlerine göre sıralamak için keySelectoriçin identity işlevini (x => xC# dilinde veya Function(x) x Visual Basic'te) 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.
ThenByve ThenByDescending ayrıca herhangi bir sayıda ardışık çağrı ThenByThenByDescending yapılabilmesini sağlayan bir IOrderedEnumerable<TElement>döndürür.
Not
IOrderedEnumerable<TElement>' den IEnumerable<T>devralındığından , OrderByDescendingThenByThenByDescendingveya OrderByDescending çağrısının sonuçlarında veya öğesini OrderByçağırabilirsinizOrderBy. 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 öğe anahtarı 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>)