Queryable.OrderBy Metode

Definisi

Mengurutkan elemen urutan dalam urutan naik.

Overload

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

Mengurutkan elemen urutan dalam urutan naik dengan menggunakan perbandingan yang ditentukan.

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)

Mengurutkan elemen urutan dalam urutan naik sesuai dengan kunci.

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>)

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

Urutan nilai yang akan diurutkan.

keySelector
Expression<Func<TSource,TKey>>

Fungsi untuk mengekstrak kunci dari elemen.

comparer
IComparer<TKey>

IComparer<T> Untuk 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 jenis Func<T,TResult> . Untuk parameter ini, Anda dapat meneruskan ekspresi lambda dan akan dikompilasi ke Expression<TDelegate>.

Metode ini OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) menghasilkan MethodCallExpression yang mewakili pemanggilan OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery<TElement>(Expression) metode dari yang diwakili IQueryProvider 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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) tergantung pada implementasi jenis source parameter. Perilaku yang diharapkan adalah bahwa ia mengurutkan elemen source berdasarkan kunci yang diperoleh dengan memanggil keySelector pada setiap elemen source. Parameter comparer digunakan untuk membandingkan kunci.

Berlaku untuk

OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>)

Sumber:
Queryable.cs
Sumber:
Queryable.cs
Sumber:
Queryable.cs

Mengurutkan elemen urutan dalam urutan naik sesuai dengan kunci.

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

Urutan nilai yang akan diurutkan.

keySelector
Expression<Func<TSource,TKey>>

Fungsi untuk mengekstrak kunci dari elemen.

Mengembalikan

Elemen IOrderedQueryable<T> yang diurutkan sesuai dengan kunci.

Pengecualian

source atau keySelector adalah null.

Contoh

Contoh kode berikut menunjukkan cara menggunakan OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<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 } };

    // Sort the Pet objects in the array by Pet.Age.
    IEnumerable<Pet> query =
        pets.AsQueryable().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

Shared Sub OrderByEx1()
    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}}

    ' Sort the Pet objects in the array by Pet.Age.
    Dim query As IEnumerable(Of Pet) = _
                pets.AsQueryable().OrderBy(Function(pet) pet.Age)

    Dim output As New System.Text.StringBuilder
    For Each pet As Pet In query
        output.AppendLine(String.Format("{0} - {1}", pet.Name, pet.Age))
    Next

    ' Display the output.
    MsgBox(output.ToString())
End Sub

' This code produces the following output:

' Whiskers - 1
' Boots - 4
' Barley - 8

Keterangan

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

Metode ini OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) menghasilkan MethodCallExpression yang mewakili pemanggilan OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) dirinya sebagai metode generik yang dibangun. Kemudian meneruskan MethodCallExpression ke CreateQuery<TElement>(Expression) metode dari yang diwakili IQueryProvider 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 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) tergantung pada implementasi jenis source parameter. Perilaku yang diharapkan adalah bahwa ia mengurutkan elemen source berdasarkan kunci yang diperoleh dengan memanggil keySelector pada setiap elemen source.

Berlaku untuk