是否可以窥视variable
表面以下 C# Stack 层的值?在我的示例中,我需要查看下面的值一。我可以Peek
将值记录到临时变量中,Pop
然后读取,然后Push
将临时值返回,但是有更好的方法吗?
问问题
2577 次
3 回答
14
AStack
也是IEnumerable
,因此您可以使用标准方法来操作它们。例如,在System.Linq
命名空间打开的情况下,您可以编写stack.Skip(1).First()
.
于 2014-01-01T02:16:09.997 回答
5
考虑为此目的使用链表。与堆栈一样,从堆栈中弹出(使用RemoveFirst
)是一个 O(1) 操作,访问第一个元素(窥视)也是如此。与堆栈不同,您还可以<stack object>.First.Next
在恒定时间内非常轻松地访问第二个元素。
于 2014-01-01T02:10:54.777 回答
2
如果您需要对结构进行某种随机访问,您可能需要考虑在结构周围编写一个包装器,以使您仍然可以将其作为堆栈操作,但能够执行随机访问,从而为您提供随机访问如果需要的话。
最简单的答案是链接列表的包装器。虽然它没有随机访问(您需要迭代地搜索列表),但它会提供您需要的基本功能,并且很容易围绕它实现您自己的包装器以实现类似堆栈的功能。
于 2014-01-01T02:15:08.547 回答