Bagikan melalui


Queryable.ThenBy Metode

Definisi

Melakukan urutan elemen berikutnya secara berurutan dalam urutan naik.

Overload

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)

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

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

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

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>)

Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.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::IOrderedQueryable<TSource> ^ ThenBy(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector);
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey))) As IOrderedQueryable(Of TSource)

Jenis parameter

TSource

Jenis elemen source.

TKey

Jenis kunci yang dikembalikan oleh fungsi yang diwakili oleh keySelector.

Parameter

source
IOrderedQueryable<TSource>

Yang IOrderedQueryable<T> berisi elemen untuk diurutkan.

keySelector
Expression<Func<TSource,TKey>>

Fungsi untuk mengekstrak kunci dari setiap elemen.

Mengembalikan

Elemen IOrderedQueryable<T> yang diurutkan sesuai dengan kunci.

Pengecualian

source atau keySelector adalah null.

Contoh

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

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

// Sort the strings first by their length and then
// alphabetically by passing the identity selector function.
IEnumerable<string> query =
    fruits.AsQueryable()
    .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
*/
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 selector function.
Dim query = fruits.AsQueryable() _
    .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
MsgBox(output.ToString())

'This code produces the following output:

'apple
'grape
'mango
'banana
'orange
'blueberry
'raspberry
'passionfruit

Keterangan

Metode ini memiliki setidaknya satu parameter jenis Expression<TDelegate> yang argumen jenisnya adalah salah satu jenisnya Func<T,TResult> . Untuk parameter ini, Anda dapat meneruskan ekspresi lambda dan akan dikompilasi ke Expression<TDelegate>.

Metode ini ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) menghasilkan MethodCallExpression yang mewakili pemanggilan ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery<TElement>(Expression) metode dari yang IQueryProvider diwakili oleh Provider properti source parameter . Hasil panggilan CreateQuery<TElement>(Expression) ditransmisikan ke jenis IOrderedQueryable<T> dan dikembalikan.

Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>) tergantung pada implementasi jenis source parameter. Perilaku yang diharapkan adalah bahwa ia melakukan semacam sekunder dari elemen source berdasarkan kunci yang diperoleh dengan memanggil keySelector pada setiap elemen source. Semua urutan sortir yang dibuat sebelumnya dipertahankan.

Berlaku untuk

ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.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::IOrderedQueryable<TSource> ^ ThenBy(System::Linq::IOrderedQueryable<TSource> ^ source, System::Linq::Expressions::Expression<Func<TSource, TKey> ^> ^ keySelector, System::Collections::Generic::IComparer<TKey> ^ comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey> comparer);
public static System.Linq.IOrderedQueryable<TSource> ThenBy<TSource,TKey> (this System.Linq.IOrderedQueryable<TSource> source, System.Linq.Expressions.Expression<Func<TSource,TKey>> keySelector, System.Collections.Generic.IComparer<TKey>? comparer);
static member ThenBy : System.Linq.IOrderedQueryable<'Source> * System.Linq.Expressions.Expression<Func<'Source, 'Key>> * System.Collections.Generic.IComparer<'Key> -> System.Linq.IOrderedQueryable<'Source>
<Extension()>
Public Function ThenBy(Of TSource, TKey) (source As IOrderedQueryable(Of TSource), keySelector As Expression(Of Func(Of TSource, TKey)), comparer As IComparer(Of TKey)) As IOrderedQueryable(Of TSource)

Jenis parameter

TSource

Jenis elemen source.

TKey

Jenis kunci yang dikembalikan oleh fungsi yang diwakili oleh keySelector.

Parameter

source
IOrderedQueryable<TSource>

Yang IOrderedQueryable<T> berisi elemen untuk diurutkan.

keySelector
Expression<Func<TSource,TKey>>

Fungsi untuk mengekstrak kunci dari setiap elemen.

comparer
IComparer<TKey>

Untuk IComparer<T> membandingkan kunci.

Mengembalikan

Elemen IOrderedQueryable<T> yang diurutkan sesuai dengan kunci.

Pengecualian

source atau keySelector atau comparer adalah null.

Keterangan

Metode ini memiliki setidaknya satu parameter jenis Expression<TDelegate> yang argumen jenisnya adalah salah satu jenisnya Func<T,TResult> . Untuk parameter ini, Anda dapat meneruskan ekspresi lambda dan akan dikompilasi ke Expression<TDelegate>.

Metode ini ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) menghasilkan MethodCallExpression yang mewakili pemanggilan ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery<TElement>(Expression) metode dari yang IQueryProvider diwakili oleh Provider properti source parameter . Hasil panggilan CreateQuery<TElement>(Expression) ditransmisikan ke jenis IOrderedQueryable<T> dan dikembalikan.

Perilaku kueri yang terjadi sebagai akibat dari menjalankan pohon ekspresi yang mewakili panggilan ThenBy<TSource,TKey>(IOrderedQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) tergantung pada implementasi jenis source parameter. Perilaku yang diharapkan adalah bahwa ia melakukan semacam sekunder dari elemen source berdasarkan kunci yang diperoleh dengan memanggil keySelector pada setiap elemen source. Semua urutan sortir yang dibuat sebelumnya dipertahankan. Parameter comparer digunakan untuk membandingkan nilai kunci.

Berlaku untuk