佐々木屋

技術的なことから趣味まで色々書きます

取得メソッド①(First、FirstOrDefaullt、Last、LastOrDefault)

Firstメソッドはコレクションの先頭を取得するメソッドです。

int[] values = { 1, 9, 5, 6, 8, 6, 2, 5, 3 };
Console.WriteLine(values.First());
Dim values As Integer() = {1, 9, 5, 6, 8, 6, 2, 5, 3}
Console.WriteLine(values.First())
1

正直単体で使用することはほとんどないメソッドですが。
Firstメソッドは他にも引数に条件を指定することで、最初に条件に合った要素を取得することが可能です。

//偶数の最初のデータを取得
Console.WriteLine(values.First(x => x % 2 == 0));
'偶数の最初のデータを取得
Console.WriteLine(values.First(Function(x) x Mod 2 = 0))
6



Firstメソッドの欠点として、コレクションがnullの場合や条件に合った要素が無い場合、System.InvalidOperationExceptionの例外が発生してしまいます。これを回避するメソッドとして、FirstOrDefaultメソッドがあります。FirstOrDefaultメソッドはSystem.InvalidOperationException例外が発生する場合、対象の型の初期値を返します。

Console.WriteLine(values.FirstOrDefault(x => x > 9));
Console.WriteLine(values.FirstOrDefault(Function(x) x > 9))
0

但し、この場合0が最初に見つかったので0を返したのか、例外が発生する状況になったので0を返したのかの判断ができませんので、実際のコーディングではもう少し工夫が必要です。

First、FirstOrDefaultメソッドの逆で、最後の要素から検索するメソッドがLast、LastOrDefaultメソッドです。こちらも例外発生と初期値を返す挙動はFirst、FirstOrDefaultメソッドと同じです。