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.

questionAnswers(5)

yourAnswerToTheQuestion