是否有可能窥视堆栈的表面?

Kea*_*von 5 c# stack peek

是否可以窥视variable表面下方的C#堆栈层的值?在我的例子中,我需要查看下面的值1.我可以Peek将值记录到临时变量中,Pop并读取,然后Push返回临时值,但有更好的方法吗?

GS *_*ica 11

A Stack也是一个IEnumerable,因此您可以使用标准方法来操纵它们.例如,System.Linq打开命名空间,就可以编写stack.Skip(1).First().


Chr*_*nte 5

考虑为此目的使用链表。与堆栈一样,从堆栈中弹出(使用RemoveFirst)是一个 O(1) 操作,访问第一个元素(窥视)也是如此。与堆栈不同,您还可以<stack object>.First.Next在恒定时间内非常轻松地访问第二个元素。