Posso limitar a profundidade de uma pilha genérica?
Existe uma maneira integrada de limitar a profundidade de um System.Collection.Generics.Stack? Para que, se você estiver na capacidade máxima, pressionar um novo elemento removeria o fundo da pilha?
Eu sei que posso fazer isso convertendo para uma matriz e reconstruindo a pilha, mas achei que provavelmente já existe um método nela.
EDIT: eu escrevi um método de extensão:
public static void Trim<T> (this Stack<T> stack, int trimCount)
{
if (stack.Count <= trimCount)
return;
stack = new
Stack<T>
(
stack
.ToArray()
.Take(trimCount)
);
}
Portanto, ele retorna uma nova pilha ao aparar, mas não é imutável da maneira funcional =)
A razão para isso é que estou armazenando as etapas para desfazer um aplicativo em uma pilha e quero armazenar apenas uma quantidade finita de etapas.