Enumerable.OrderBy メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
シーケンスの要素を昇順に並べ替えます。
オーバーロード
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>) |
シーケンスの要素をキーに従って昇順に並べ替えます。 |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>) |
指定された比較子を使用してシーケンスの要素を昇順に並べ替えます。 |
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- ソース:
- OrderBy.cs
- ソース:
- OrderBy.cs
- ソース:
- OrderBy.cs
シーケンスの要素をキーに従って昇順に並べ替えます。
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)
型パラメーター
- TSource
source
の要素の型。
- TKey
keySelector
によって返されるキーの型。
パラメーター
- source
- IEnumerable<TSource>
順序付ける値のシーケンス。
- keySelector
- Func<TSource,TKey>
要素からキーを抽出する関数。
戻り値
要素がキーに従って並べ替えられている IOrderedEnumerable<TElement>。
例外
source
または keySelector
が null
です。
例
次のコード例では、 を使用 OrderBy<TSource,TKey>(IEnumerable<TSource>, 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 } };
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
注釈
このメソッドは、遅延実行を使用して実装されます。 即時戻り値は、アクションの実行に必要なすべての情報を格納する オブジェクトです。 このメソッドで表されるクエリは、オブジェクトがメソッドを直接呼び出GetEnumerator
すか、C# For Each
または Visual Basic で を使用foreach
して列挙されるまで実行されません。
要素自体の値でシーケンスを並べ替える場合は、 の ID 関数 (x => x
C# または Function(x) x
Visual Basic の場合) keySelector
を指定します。
型 IOrderedEnumerable<TElement>を拡張するために 2 つのメソッドが定義されています。これは、このメソッドの戻り値の型です。 これら 2 つのメソッド (つまり ThenBy
、 と ThenByDescending
) を使用すると、シーケンスを並べ替える追加の並べ替え条件を指定できます。 ThenBy
と ThenByDescending
は、 IOrderedEnumerable<TElement>を返します。これは、 または ThenByDescending
に対して連続する任意の数の呼び出しをThenBy
行うことができます。
注意
は から継承されるためIOrderedEnumerable<TElement>、または OrderByDescending の呼び出OrderByしの結果で または ThenByDescendingをOrderByOrderByDescendingThenBy呼び出すことができます。IEnumerable<T> これにより、以前に確立された順序を無視する新しいプライマリ順序が導入されます。
このメソッドは、既定の比較子 Defaultを使用してキーを比較します。
このメソッドは、安定した並べ替えを実行します。つまり、2 つの要素のキーが等しい場合、要素の順序は保持されます。 これに対し、不安定な並べ替えでは、同じキーを持つ要素の順序は保持されません。
クエリ式の構文では、 orderby
(C#) 句または Order By
(Visual Basic) 句は の OrderBy呼び出しに変換されます。
こちらもご覧ください
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- orderby 句 (C# リファレンス)
- Order By 句 (Visual Basic)
適用対象
OrderBy<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
- ソース:
- OrderBy.cs
- ソース:
- OrderBy.cs
- ソース:
- OrderBy.cs
指定された比較子を使用してシーケンスの要素を昇順に並べ替えます。
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)
型パラメーター
- TSource
source
の要素の型。
- TKey
keySelector
によって返されるキーの型。
パラメーター
- source
- IEnumerable<TSource>
順序付ける値のシーケンス。
- keySelector
- Func<TSource,TKey>
要素からキーを抽出する関数。
- comparer
- IComparer<TKey>
キーを比較する IComparer<T>。
戻り値
要素がキーに従って並べ替えられている IOrderedEnumerable<TElement>。
例外
source
または keySelector
が null
です。
注釈
このメソッドは、遅延実行を使用して実装されます。 即時戻り値は、アクションの実行に必要なすべての情報を格納する オブジェクトです。 このメソッドで表されるクエリは、オブジェクトがメソッドを直接呼び出GetEnumerator
すか、C# For Each
または Visual Basic で を使用foreach
して列挙されるまで実行されません。
要素自体の値でシーケンスを並べ替える場合は、 の ID 関数 (x => x
C# または Function(x) x
Visual Basic の場合) keySelector
を指定します。
型 IOrderedEnumerable<TElement>を拡張するために 2 つのメソッドが定義されています。これは、このメソッドの戻り値の型です。 これら 2 つのメソッド (つまり ThenBy
、 と ThenByDescending
) を使用すると、シーケンスを並べ替える追加の並べ替え条件を指定できます。 ThenBy
と ThenByDescending
は、 IOrderedEnumerable<TElement>を返します。これは、 または ThenByDescending
に対して連続する任意の数の呼び出しをThenBy
行うことができます。
注意
は から継承されるためIOrderedEnumerable<TElement>、または OrderByDescending の呼び出OrderByしの結果で または ThenByDescendingをOrderByOrderByDescendingThenBy呼び出すことができます。IEnumerable<T> これにより、以前に確立された順序を無視する新しいプライマリ順序が導入されます。
が null
の場合comparer
、キーの比較に既定の比較子Defaultが使用されます。
このメソッドは、安定した並べ替えを実行します。つまり、2 つの要素のキーが等しい場合、要素の順序は保持されます。 これに対し、不安定な並べ替えでは、同じキーを持つ要素の順序は保持されません。
こちらもご覧ください
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>)
- OrderByDescending<TSource,TKey>(IEnumerable<TSource>, Func<TSource,TKey>, IComparer<TKey>)
適用対象
.NET