コレクションや配列から指定したインデックス番号の要素を取得するには
.ElementAt、.ElementAtOrDefault を使用します。
.ElementAtは範囲外のインデックスを指定した場合はExceptionが発生しますが、
.ElementAtOrDefaultは対象の要素が存在しない場合はデフォルト値を返します。
サンプル
例1)List型の場合
using System.Collections.Generic;
using System.Linq;
// intのListを生成
List<int> list = new List<int>(){1, 2, 3, 4, 5};
// インデックス3の要素を返す
int result = list.ElementAt(3);
→ 4
// インデックス100の要素を返す(ElementAt)
int result = list.ElementAt(100);
→ ArgumentOutOfRangeExceptionが発生
// インデックス100の要素を返す(ElementAtOrDefault)
int result = list.ElementAtOrDefault(100);
→ 0
例2)配列の場合
using System.Linq;
// intの配列を生成
int[] arr = new int[] { 1, 2, 3, 4, 5 };
// インデックス3の要素を返す
int result = arr.ElementAt(3);
→ 4
// インデックス100の要素を返す(ElementAt)
int result = arr.ElementAt(100);
→ ArgumentOutOfRangeExceptionが発生
// インデックス100の要素を返す(ElementAtOrDefault)
int result = arr.ElementAtOrDefault(100);
→ 0
備考
- LINQを使用するには、「using System.Linq;」の宣言が必要です。
- .ElementAtOrDefaultのデフォルト要素とは、対象要素の初期値です。
(例:int型→0、string型→null、データクラス→newした時の値 など)