Select(TSource, TResult) メソッド (IEnumerable(TSource), Func(TSource, Int32, TResult))
目次を折りたたむ
目次を展開する
この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

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

 

要素のインデックスを組み込むことにより、新しいフォームにシーケンスの各要素を射影します。

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

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

パラメーター

source
Type: System.Collections.Generic.IEnumerable<TSource>

変換関数を呼び出す対象となる値のシーケンス。

selector
Type: System.Func<TSource, Int32, TResult>

各ソース要素に適用する変換関数。この関数の 2 つ目のパラメーターは、ソース要素のインデックスを表します。

戻り値

Type: System.Collections.Generic.IEnumerable<TResult>

IEnumerable<T> 方の各要素に対して変換関数の呼び出しの結果を要素 sourceします。

型パラメーター

TSource

要素の型 sourceします。

TResult

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

Exception Condition
ArgumentNullException

source または selectornull です。

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

最初の引数に selector を処理する要素を表します。 2 番目の引数 selector ソース シーケンス内の要素の 0 から始まるインデックスを表します。 既知の順序に要素があり、たとえば特定のインデックス位置にある要素を実際に操作を実行する場合、これは役立つあります。 1 つまたは複数の要素のインデックスを取得する場合に便利ですできます。

この投影メソッドは変換関数を必要と selector, 、ソース シーケンス内の各値の 1 つの値を生成する sourceです。 場合 selector 、サブシーケンスを手動で走査するコンシューマーの責任です自体がコレクションの値を返します。 このような場合は、値の 1 つの結合されたシーケンスを返すようにクエリにとってより良い場合があります。 そのため、使用、 SelectMany<TSource, TResult> メソッドの代わりに Select<TSource, TResult>します。 SelectMany 同じように動作 Select, 、変換関数がによっては、展開し、コレクションを取得するには異なる SelectMany に返されます。

次のコード例では、使用して Select<TSource, TResult>(IEnumerable<TSource>, Func<TSource, Int32, TResult>) 値のシーケンスにわたるプロジェクトおよび各要素のインデックスを使用します。

string[] fruits = { "apple", "banana", "mango", "orange", 
                      "passionfruit", "grape" };

var query =
    fruits.Select((fruit, index) =>
                      new { index, str = fruit.Substring(0, index) });

foreach (var obj in query)
{
    Console.WriteLine("{0}", obj);
}

/*
 This code produces the following output:

 {index=0, str=}
 {index=1, str=b}
 {index=2, str=ma}
 {index=3, str=ora}
 {index=4, str=pass}
 {index=5, str=grape}
*/

Universal Windows Platform
8 から利用可能
.NET Framework
3.5 から利用可能
Portable Class Library
サポート対象 : portable .NET platforms
Silverlight
2.0 から利用可能
Windows Phone Silverlight
7.0 から利用可能
Windows Phone
8.1 から利用可能
トップに戻る
表示:
© 2016 Microsoft