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

Enumerable.Select<TSource, TResult> メソッド (IEnumerable<TSource>, Func<TSource, TResult>)

シーケンスの各要素を新しいフォームに射影します。

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

public static IEnumerable<TResult> Select<TSource, TResult>(
	this IEnumerable<TSource> source,
	Func<TSource, TResult> selector
)

型パラメーター

TSource

source の要素の型。

TResult

selector によって返される値の型。

パラメーター

source
型 : System.Collections.Generic.IEnumerable<TSource>
変換関数を呼び出す対象となる値のシーケンス。
selector
型 : System.Func<TSource, TResult>
各要素に適用する変換関数。

戻り値

型 : System.Collections.Generic.IEnumerable<TResult>
source の各要素に対して変換関数を呼び出した結果として得られる要素を含む IEnumerable<T>

使用上の注意

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

例外条件
ArgumentNullException

source または selectornull です。

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

この射影メソッドには、ソース シーケンス source の各値に対して値を 1 つ生成するために、変換関数 selector が必要です。 selector がそれ自体がコレクションである値を返す場合、サブシーケンスを手動で走査するかどうかはコンシューマーによって決まります。 こうした状況では、クエリによって値の結合された 1 つのシーケンスを返す方が適しています。 これを行うには、Select ではなく SelectMany メソッドを使用します。 SelectMany は、Select と同様に機能しますが、SelectMany によって拡張されてから返されるコレクションが変換関数によって返される点で異なります。

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

Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, TResult>) を使用して値のシーケンスに射影する方法を次のコード例に示します。


            IEnumerable<int> squares =
                Enumerable.Range(1, 10).Select(x => x * x);

            foreach (int num in squares)
            {
                Console.WriteLine(num);
            }
            /*
             This code produces the following output:

             1
             4
             9
             16
             25
             36
             49
             64
             81
             100
            */



.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