C#ライブラリリファレンス - 要素演算子でデータの集合の中から最初に条件に一致した要素を取り出す
Enumerable静的クラスのFirst拡張メソッドは、数あるデータの中から、指定した条件を満たす最初の要素を取り出すことができます。
日常でたとえると
東京都の最大売上をたたき出した商品を探す。
使用に適した状況
あるデータの集合の中で、条件を満たす最初のデータが必要になった時。First拡張メソッドの条件を受け取らないオーバーロードは、位置がわかっているときに使用し、こちらは位置を特定できない場合に使用します。
サンプル
/*----------------------------------------------------
*
* データの集合の中から
* 最初に条件に一致した要素を取り出す
*
----------------------------------------------------*/
using System;
using System.Linq;
class Sample
{
static void Main( )
{
//不完全なランダム値を用意
int max = 10;
Random d = new Random();
int[ ] values = new int[ max ];
for ( int i = 0 ; i < max ; ++i )
values[ i ] = d.Next( 0, 100 );
Console.WriteLine( "データ" );
foreach ( int v in values )
Console.Write( "{0} ", v );
Console.WriteLine( Environment.NewLine );
//最初の偶数を取り出す
try {
Console.WriteLine(
"最初の偶数は{0}です。",
values.First(
x => x % 2 == 0 ) );
} catch ( InvalidOperationException ) {
Console.WriteLine(
"偶数の要素はありません" );
}
Console.WriteLine();
//終了
Console.WriteLine( "サンプル終了。" );
Console.ReadLine();
}
}
名前空間
Sytem.Linq名前空間を参照してください。
解説
データを分析するとき、様々なデータを組み合し、その結果の最初の要素を取り出したい時がありま。このようなデータは、代表となるデータもしくは、処理上の都合で変数を初期化したい場合に使用する値などです。ただ、一言に「最初のデータ」といっても、位置を知らない場合がよくあります。
この場合、条件を判定するオーバーロードのFirst拡張メソッドを使用すれば、最初に条件に一致したデータを取り出すことができます。