Bagikan melalui


Enumerable.ThenBy Metode

Definisi

Melakukan urutan elemen berikutnya secara berurutan dalam urutan naik.

Overload

ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>)

Melakukan urutan elemen berikutnya secara berurutan dalam urutan naik sesuai dengan kunci.

ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Melakukan urutan elemen berikutnya secara berurutan dalam urutan naik dengan menggunakan perbandingan yang ditentukan.

ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>)

Sumber:
OrderBy.cs
Sumber:
OrderBy.cs
Sumber:
OrderBy.cs

Melakukan urutan elemen berikutnya secara berurutan dalam urutan naik sesuai dengan kunci.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IOrderedEnumerable<TSource> ^ ThenBy(System::Linq::IOrderedEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector);
public static System.Linq.IOrderedEnumerable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedEnumerable<TSource> source, Func<TSource,TKey> keySelector);
static member ThenBy : System.Linq.IOrderedEnumerable<'Source> * Func<'Source, 'Key> -> System.Linq.IOrderedEnumerable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedEnumerable(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
IOrderedEnumerable<TSource>

Yang IOrderedEnumerable<TElement> berisi elemen untuk diurutkan.

keySelector
Func<TSource,TKey>

Fungsi untuk mengekstrak kunci dari setiap elemen.

Mengembalikan

Elemen IOrderedEnumerable<TElement> yang diurutkan sesuai dengan kunci.

Pengecualian

source atau keySelector adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>) untuk melakukan urutan sekunder elemen secara berurutan.

string[] fruits = { "grape", "passionfruit", "banana", "mango",
                      "orange", "raspberry", "apple", "blueberry" };

// Sort the strings first by their length and then
//alphabetically by passing the identity selector function.
IEnumerable<string> query =
    fruits.OrderBy(fruit => fruit.Length).ThenBy(fruit => fruit);

foreach (string fruit in query)
{
    Console.WriteLine(fruit);
}

/*
    This code produces the following output:

    apple
    grape
    mango
    banana
    orange
    blueberry
    raspberry
    passionfruit
*/
' Create an array of strings.
Dim fruits() As String =
{"grape", "passionfruit", "banana", "mango",
 "orange", "raspberry", "apple", "blueberry"}

' Sort the strings first by their length and then
' alphabetically by passing the identity function.
Dim query As IEnumerable(Of String) =
fruits _
.OrderBy(Function(fruit) fruit.Length) _
.ThenBy(Function(fruit) fruit)

' Display the results.
Dim output As New System.Text.StringBuilder
For Each fruit As String In query
    output.AppendLine(fruit)
Next
Console.WriteLine(output.ToString())

' This code produces the following output:
'
' apple
' grape
' mango
' banana
' orange
' blueberry
' raspberry
' passionfruit

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 dalam C# atau For Each di Visual Basic.

Untuk mengurutkan urutan berdasarkan nilai elemen itu sendiri, tentukan fungsi identitas (x => x dalam C# atau Function(x) x di Visual Basic) untuk keySelector.

ThenBy dan ThenByDescending didefinisikan untuk memperluas jenis IOrderedEnumerable<TElement>, yang juga merupakan jenis pengembalian dari metode ini. Desain ini memungkinkan Anda menentukan beberapa kriteria pengurutan dengan menerapkan sejumlah ThenBy metode atau ThenByDescending .

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 perbandingan 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 [first criterion], [second criterion] klausa (C#) atau Order By [first criterion], [second criterion] (Visual Basic) diterjemahkan ke pemanggilan ThenBy.

Lihat juga

Berlaku untuk

ThenBy<TSource,TKey>(IOrderedEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)

Sumber:
OrderBy.cs
Sumber:
OrderBy.cs
Sumber:
OrderBy.cs

Melakukan urutan elemen berikutnya secara berurutan dalam urutan naik dengan menggunakan perbandingan yang ditentukan.

public:
generic <typename TSource, typename TKey>
[System::Runtime::CompilerServices::Extension]
 static System::Linq::IOrderedEnumerable<TSource> ^ ThenBy(System::Linq::IOrderedEnumerable<TSource> ^ source, Func<TSource, TKey> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedEnumerable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
public static System.Linq.IOrderedEnumerable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedEnumerable<TSource> source, Func<TSource,TKey> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member ThenBy : System.Linq.IOrderedEnumerable<'Source> * Func<'Source, 'Key> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedEnumerable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedEnumerable(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
IOrderedEnumerable<TSource>

Yang IOrderedEnumerable<TElement> berisi elemen untuk diurutkan.

keySelector
Func<TSource,TKey>

Fungsi untuk mengekstrak kunci dari setiap elemen.

comparer
IComparer<TKey>

IComparer<T> Untuk 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 dalam C# atau For Each di Visual Basic.

Untuk mengurutkan urutan berdasarkan nilai elemen itu sendiri, tentukan fungsi identitas (x => x dalam C# atau Function(x) x di Visual Basic) untuk keySelector.

ThenBy dan ThenByDescending didefinisikan untuk memperluas jenis IOrderedEnumerable<TElement>, yang juga merupakan jenis pengembalian dari metode ini. Desain ini memungkinkan Anda menentukan beberapa kriteria pengurutan dengan menerapkan sejumlah ThenBy metode atau ThenByDescending .

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, perbandingan 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.

Berlaku untuk