Fun Coding

学んだことを記録していきます!

【C#】リストの指定したインデックスの要素を取得する方法 まとめ

リストの指定したインデックスの要素を取得するメソッドは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