Fun Coding

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

【C#】リストの最後の要素を取得する(FindLast)

リストの最後の要素を取得する方法の1つに「FindLast」メソッドがあります。
サンプルコードを交えて解説したいと思います。

説明

リストから指定した条件に一致する要素を検索し、最もインデックスが大きい要素を返す。

ポイント

・取得できる要素は1つ
・条件に一致する要素がない場合はリストの要素の型のデフォルト値を返す


最も小さいインデックスを取得したい場合は「Find」を使います。
funcording.hatenablog.com

コード
using System;
using System.Collections.Generic;

namespace Sample {
    /// <summary>
    /// メインプログラム
    /// </summary>
    public class Program {
        /// <summary>
        /// FindLastの使い方
        /// </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 = list.FindLast(n => n % 2 == 0);
            Console.WriteLine("2で割った余りが0 : " + result1);

            // 該当する要素がない場合の検索
            int result2 = list.FindLast(n => n % 2 == 2);
            Console.WriteLine("2で割った余りが2 : " + result2);
        }
    }
}
出力
2で割った余りが0 : 6
2で割った余りが2 : 0


末尾から指定した条件に一致する要素を検索し、最初に見つかった要素を返すイメージ。
・2で割った余りが0:最もインデックスが大きい要素は6 → 6が出力
・2で割った余りが2:リストに要素はない → int型のデフォルト値が出力