System.Collection.Generics.Stackの深さを制限する組み込みの方法はありますか?最大容量の場合、新しい要素を押すとスタックの一番下が削除されますか?
配列に変換してスタックを再構築することでそれができることは知っていますが、おそらくすでにメソッドがあると思いました。
編集:私は拡張メソッドを書きました:
public static void Trim<T> (this Stack<T> stack, int trimCount)
{
if (stack.Count <= trimCount)
return;
stack = new
Stack<T>
(
stack
.ToArray()
.Take(trimCount)
);
}
したがって、トリミング時に新しいスタックを返しますが、機能的な方法で不変ではありません=)
これは、アプリの元に戻るステップをスタックに保存していて、限られた量のステップのみを保存したいためです。