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 source
türü.
- TKey
tarafından keySelector
dö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 keySelector
için identity işlevini (x => x
C# 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 ThenBy
ThenByDescending
bu iki yöntem, bir sırayı sıralamak için ek sıralama ölçütleri belirtmenizi sağlar. ThenBy
ve ThenByDescending
ayrıca herhangi bir sayıda ardışık çağrı ThenBy
ThenByDescending
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 source
türü.
- TKey
tarafından keySelector
dö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 keySelector
için identity işlevini (x => x
C# 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 ThenBy
ThenByDescending
bu iki yöntem, bir sırayı sıralamak için ek sıralama ölçütleri belirtmenizi sağlar. ThenBy
ve ThenByDescending
ayrıca herhangi bir sayıda ardışık çağrı ThenBy
ThenByDescending
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 comparer
null
, 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>)