情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Enumerable.OrderBy<TSource, TKey> メソッド (IEnumerable<TSource>, Func<TSource, TKey>)

シーケンスの要素をキーに従って昇順に並べ替えます。

名前空間:  System.Linq
アセンブリ:  System.Core (System.Core.dll 内)

public static IOrderedEnumerable<TSource> OrderBy<TSource, TKey>(
	this IEnumerable<TSource> source,
	Func<TSource, TKey> keySelector
)

型パラメーター

TSource

source の要素の型。

TKey

keySelector によって返されるキーの型。

パラメーター

source
型 : System.Collections.Generic.IEnumerable<TSource>
順序付ける値のシーケンス。
keySelector
型 : System.Func<TSource, TKey>
要素からキーを抽出する関数。

戻り値

型 : System.Linq.IOrderedEnumerable<TSource>
要素がキーに従って並べ替えられている IOrderedEnumerable<TElement>

使用上の注意

Visual Basic および Visual C# では、このメソッドを、IEnumerable<TSource> 型のオブジェクトのインスタンス メソッドとして呼び出すことができます。インスタンス メソッド構文を使用してこのメソッドを呼び出す場合は、最初のパラメーターを省略します。詳細については、「拡張メソッド (Visual Basic)」または「拡張メソッド (C# プログラミング ガイド)」を参照してください。

例外条件
ArgumentNullException

source または keySelectornull です。

このメソッドは遅延実行を使用して実装されます。 アクションの実行に必要なすべての情報を格納するオブジェクトがすぐに返されます。 このメソッドによって表されるクエリは、オブジェクトの GetEnumerator メソッドを直接呼び出すか、foreach (Visual C# の場合) または For Each (Visual Basic の場合) を使用することによってオブジェクトが列挙されるまで実行されません。

要素自体の値を使用してシーケンスの順序付けを行うには、keySelector の ID 関数 (Visual C# では x => x、Visual Basic では Function(x) x) を指定します。

このメソッドの戻り値の型である IOrderedEnumerable<TElement> 型を拡張するために、2 つのメソッドが定義されます。 この 2 つのメソッド (ThenBy および ThenByDescending) によって、シーケンスを並べ替えるための追加の並べ替え条件を指定できます。 また、ThenBy および ThenByDescending は、IOrderedEnumerable<TElement> を返します。これは、ThenBy または ThenByDescending を任意の回数だけ連続して呼び出すことができることを意味します。

メモメモ

IOrderedEnumerable<TElement> IEnumerable<T> から継承するため、OrderByOrderByDescendingThenBy、または ThenByDescending を呼び出した結果に対して OrderBy または OrderByDescending を呼び出すことができます。 これにより、以前確立された順序を無視する新しい主要な順序が導入されます。

このメソッドは、既定の比較子 Default を使用してキーを比較します。

このメソッドは安定した並べ替えを実行します。つまり、2 つの要素のキーが等しい場合、要素の順序は保持されます。 これに対し、不安定な並べ替えでは、同じキーを持つ要素の順序が保持されません。

クエリ式の構文では、orderby 句 (Visual C# の場合) または Order By 句 (Visual Basic の場合) が OrderBy の呼び出しに変換されます。

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
            */



.NET Framework

サポート対象 : 4.5.2、4.5.1、4.5、4、3.5

.NET Framework Client Profile

サポート対象 : 4、3.5 SP1

汎用性のあるクラス ライブラリ

サポート対象 : 汎用性のあるクラス ライブラリ

Windows ストア アプリ用 .NET

サポート対象 : Windows 8

Windows Phone アプリ用 .NET

サポート対象 : Windows Phone 8、Silverlight 8.1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (サーバー コア ロールはサポート対象外), Windows Server 2008 R2 (SP1 以降でサーバー コア ロールをサポート。Itanium はサポート対象外)

.NET Framework では、各プラットフォームのすべてのバージョンはサポートしていません。サポートされているバージョンについては、「.NET Framework システム要件」を参照してください。

コミュニティの追加

表示:
© 2014 Microsoft