リストの指定したインデックスの要素を取得するメソッドは2つあります。
方法 | メソッド名 |
---|---|
① |
ElementAt |
② |
ElementAtOrDefault |
共通の仕様
リストの指定したインデックスの要素を返す。
異なる仕様
方法 | メソッド名 |
該当する要素がない場合 |
---|---|---|
① |
ElementAt | ArgumentOutOfRangeExceptionが発生する |
② |
ElementAtOrDefault | リストの要素の型のデフォルト値を返す |
例
コード
using System; using System.Collections.Generic; using System.Linq; namespace Sample { /// <summary> /// メインプログラム /// </summary> public class Program { /// <summary> /// 方法の比較 /// </summary> static void Main() { // リストを生成 var list = new List<int>(); // リストに値を追加 list.Add(1); list.Add(2); list.Add(3); list.Add(4); list.Add(5); list.Add(6); int result1, result2; // 指定したインデックスに要素がある場合 result1 = list.ElementAt(1); result2 = list.ElementAtOrDefault(1); Console.WriteLine("指定したインデックスに要素がある場合"); Console.WriteLine("ElementAt : " + result1); Console.WriteLine("ElementAtOrDefault : " + result2); Console.WriteLine(); // 指定したインデックスに要素がない場合 /* result1 = list.ElementAt(100); */ result2 = list.ElementAtOrDefault(100); Console.WriteLine("指定したインデックスに要素がない場合"); Console.WriteLine("ElementAt : System.ArgumentOutOfRangeException"); Console.WriteLine("ElementAtOrDefault : " + result2); Console.WriteLine(); } } }
出力
指定したインデックスに要素がある場合 ElementAt : 2 ElementAtOrDefault : 2 指定したインデックスに要素がない場合 ElementAt : System.ArgumentOutOfRangeException ElementAtOrDefault : 0