リストの最後の要素を削除するためには、最後の要素のインデックスを取得後、RemoveAt(Int32) で取得したインデックスを指定して削除すればよいです。
ただし、RemoveAt(Int32)は読み取り専用のリストである場合、例外が発生するため注意が必要です。
下記は実装例です。拡張メソッドとして実装しています。
C#
public static bool RemoveLast<T>(this IList<T> source)
{
if (source is null || !source.Any())
{
return false;
}
if (source.IsReadOnly)
{
return false;
}
var lastIndex = source.Count - 1;
if (lastIndex < 0)
{
return false;
}
source.RemoveAt(lastIndex);
return true;
}
コメント