Enumerable.OrderBy Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengurutkan elemen urutan dalam urutan naik.
Overload
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
Mengurutkan elemen urutan dalam urutan naik sesuai dengan kunci. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
Mengurutkan elemen urutan dalam urutan naik dengan menggunakan perbandingan yang ditentukan. |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- Sumber:
- OrderBy.cs
- Sumber:
- OrderBy.cs
- Sumber:
- OrderBy.cs
Mengurutkan elemen urutan dalam urutan naik sesuai dengan kunci.
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)
Jenis parameter
- TSource
Jenis elemen source
.
- TKey
Jenis kunci yang dikembalikan oleh keySelector
.
Parameter
- source
- IEnumerable<TSource>
Urutan nilai yang akan diurutkan.
- keySelector
- Func<TSource,TKey>
Fungsi untuk mengekstrak kunci dari elemen.
Mengembalikan
Elemen IOrderedEnumerable<TElement> yang diurutkan sesuai dengan kunci.
Pengecualian
source
atau keySelector
adalah null
.
Contoh
Contoh kode berikut menunjukkan cara menggunakan OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) untuk mengurutkan elemen urutan.
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
Keterangan
Metode ini diimplementasikan dengan menggunakan eksekusi yang ditangguhkan. Nilai pengembalian langsung adalah objek yang menyimpan semua informasi yang diperlukan untuk melakukan tindakan. Kueri yang diwakili oleh metode ini tidak dijalankan sampai objek dijumlahkan baik dengan memanggil metodenya GetEnumerator
secara langsung atau dengan menggunakan foreach
di C# atau For Each
di Visual Basic.
Untuk mengurutkan urutan berdasarkan nilai elemen itu sendiri, tentukan fungsi identitas (x => x
di C# atau Function(x) x
di Visual Basic) untuk keySelector
.
Dua metode didefinisikan untuk memperluas jenis IOrderedEnumerable<TElement>, yang merupakan jenis pengembalian dari metode ini. Kedua metode ini, yaitu ThenBy
dan ThenByDescending
, memungkinkan Anda menentukan kriteria pengurutan tambahan untuk mengurutkan urutan. ThenBy
dan ThenByDescending
juga mengembalikan IOrderedEnumerable<TElement>, yang berarti sejumlah panggilan berturut-turut ke ThenBy
atau ThenByDescending
dapat dilakukan.
Catatan
Karena IOrderedEnumerable<TElement> mewarisi dari IEnumerable<T>, Anda dapat memanggil OrderBy atau OrderByDescending pada hasil panggilan ke OrderBy, OrderByDescending, ThenBy atau ThenByDescending. Melakukan ini memperkenalkan urutan utama baru yang mengabaikan urutan yang ditetapkan sebelumnya.
Metode ini membandingkan kunci dengan menggunakan pembanding Defaultdefault .
Metode ini melakukan pengurutan yang stabil; artinya, jika kunci dari dua elemen sama, urutan elemen dipertahankan. Sebaliknya, pengurutan yang tidak stabil tidak mempertahankan urutan elemen yang memiliki kunci yang sama.
Dalam sintaks ekspresi kueri, orderby
klausa (C#) atau Order By
(Visual Basic) diterjemahkan ke pemanggilan OrderBy.
Lihat juga
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- Klausul orderby (Referensi C#)
- Klausul Order By (Visual Basic)
Berlaku untuk
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- Sumber:
- OrderBy.cs
- Sumber:
- OrderBy.cs
- Sumber:
- OrderBy.cs
Mengurutkan elemen urutan dalam urutan naik dengan menggunakan perbandingan yang ditentukan.
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)
Jenis parameter
- TSource
Jenis elemen source
.
- TKey
Jenis kunci yang dikembalikan oleh keySelector
.
Parameter
- source
- IEnumerable<TSource>
Urutan nilai yang akan diurutkan.
- keySelector
- Func<TSource,TKey>
Fungsi untuk mengekstrak kunci dari elemen.
- comparer
- IComparer<TKey>
Untuk IComparer<T> membandingkan kunci.
Mengembalikan
Elemen IOrderedEnumerable<TElement> yang diurutkan sesuai dengan kunci.
Pengecualian
source
atau keySelector
adalah null
.
Keterangan
Metode ini diimplementasikan dengan menggunakan eksekusi yang ditangguhkan. Nilai pengembalian langsung adalah objek yang menyimpan semua informasi yang diperlukan untuk melakukan tindakan. Kueri yang diwakili oleh metode ini tidak dijalankan sampai objek dijumlahkan baik dengan memanggil metodenya GetEnumerator
secara langsung atau dengan menggunakan foreach
di C# atau For Each
di Visual Basic.
Untuk mengurutkan urutan berdasarkan nilai elemen itu sendiri, tentukan fungsi identitas (x => x
di C# atau Function(x) x
di Visual Basic) untuk keySelector
.
Dua metode didefinisikan untuk memperluas jenis IOrderedEnumerable<TElement>, yang merupakan jenis pengembalian dari metode ini. Kedua metode ini, yaitu ThenBy
dan ThenByDescending
, memungkinkan Anda menentukan kriteria pengurutan tambahan untuk mengurutkan urutan. ThenBy
dan ThenByDescending
juga mengembalikan IOrderedEnumerable<TElement>, yang berarti sejumlah panggilan berturut-turut ke ThenBy
atau ThenByDescending
dapat dilakukan.
Catatan
Karena IOrderedEnumerable<TElement> mewarisi dari IEnumerable<T>, Anda dapat memanggil OrderBy atau OrderByDescending pada hasil panggilan ke OrderBy, OrderByDescending, ThenBy atau ThenByDescending. Melakukan ini memperkenalkan urutan utama baru yang mengabaikan urutan yang ditetapkan sebelumnya.
Jika comparer
adalah null
, pembanding Default default digunakan untuk membandingkan kunci.
Metode ini melakukan pengurutan yang stabil; artinya, jika kunci dari dua elemen sama, urutan elemen dipertahankan. Sebaliknya, pengurutan yang tidak stabil tidak mempertahankan urutan elemen yang memiliki kunci yang sama.
Lihat juga
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)