Queryable.OrderBy 方法

定義

依遞增順序排序序列中的項目。

多載

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

使用指定的比較子,依遞增順序排序序列中的項目。

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

依據索引鍵,按遞增順序排序序列中的項目。

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

來源:
Queryable.cs
來源:
Queryable.cs
來源:
Queryable.cs

使用指定的比較子,依遞增順序排序序列中的項目。

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)

類型參數

TSource

source 項目的類型。

TKey

keySelector 表示之函式所傳回索引鍵的型別。

參數

source
IQueryable<TSource>

要排序的值序列。

keySelector
Expression<Func<TSource,TKey>>

用來從項目擷取索引鍵的函式。

comparer
IComparer<TKey>

用來比較金鑰的 IComparer<T>

傳回

依據索引鍵排序其項目的 IOrderedQueryable<T>

例外狀況

sourcekeySelectorcomparernull

備註

這個方法至少有一個類型 Expression<TDelegate> 參數,其類型自變數為其中一個 Func<T,TResult> 型別。 針對這些參數,您可以傳入 Lambda 運算式,並將它編譯為 Expression<TDelegate>

方法 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) 會產生 , MethodCallExpression 表示 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) 呼叫本身做為建構的泛型方法。 然後,它會將 傳遞MethodCallExpressionCreateQuery<TElement>(Expression) 參數的 屬性所Provider表示的 source 方法IQueryProvider。 呼叫 CreateQuery<TElement>(Expression) 的結果會轉換成類型 IOrderedQueryable<T> 並傳回。

執行表示呼叫 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>, IComparer<TKey>) 的表達式樹狀結構所產生的查詢行為,取決於參數類型的 source 實作。 預期的行為是它會根據 叫用 的每個元素取得keySelector的索引鍵排序 sourcesource元素。 參數 comparer 是用來比較索引鍵。

適用於

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

來源:
Queryable.cs
來源:
Queryable.cs
來源:
Queryable.cs

依據索引鍵,按遞增順序排序序列中的項目。

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)

類型參數

TSource

source 項目的類型。

TKey

keySelector 表示之函式所傳回索引鍵的型別。

參數

source
IQueryable<TSource>

要排序的值序列。

keySelector
Expression<Func<TSource,TKey>>

用來從項目擷取索引鍵的函式。

傳回

依據索引鍵排序其項目的 IOrderedQueryable<T>

例外狀況

sourcekeySelectornull

範例

下列程式代碼範例示範如何使用 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 來排序序列的專案。

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

備註

這個方法至少有一個類型 Expression<TDelegate> 參數,其類型自變數為其中一個 Func<T,TResult> 型別。 針對這些參數,您可以傳入 Lambda 運算式,並將它編譯為 Expression<TDelegate>

方法 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 會產生 , MethodCallExpression 表示 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 呼叫本身做為建構的泛型方法。 然後,它會將 傳遞MethodCallExpressionCreateQuery<TElement>(Expression) 參數的 屬性所Provider表示的 source 方法IQueryProvider。 呼叫 CreateQuery<TElement>(Expression) 的結果會轉換成類型 IOrderedQueryable<T> 並傳回。

執行表示呼叫 OrderBy<TSource,TKey>(IQueryable<TSource>, Expression<Func<TSource,TKey>>) 的表達式樹狀結構所產生的查詢行為,取決於參數類型的 source 實作。 預期的行為是它會根據 叫用 的每個元素取得keySelector的索引鍵排序 sourcesource元素。

適用於