在 Delphi XE2 中,我需要一个通用对象堆栈,其中我的调用代码不仅可以访问顶部(通过 Peek),还可以访问 Top-1、Top-2 等。也许更多的是“ObjectStackList”。
我还没有发现使用现有 System.Generics.Collections 类实现这一目标的简单方法。并且 TObjectStack 的 FItems 在 TStack 中是私有的,因此没有直接的方法来创建可以访问它的 TObjectStack 后代。
我意识到我可以使用 ToArray 按索引访问项目,但这会创建一个单独的数组,这似乎只是为了访问 FItems 中的单个项目而浪费时间和空间。
有任何想法吗?