5

在 Delphi XE2 中,我需要一个通用对象堆栈,其中我的调用代码不仅可以访问顶部(通过 Peek),还可以访问 Top-1、Top-2 等。也许更多的是“ObjectStackList”。

我还没有发现使用现有 System.Generics.Collections 类实现这一目标的简单方法。并且 TObjectStack 的 FItems 在 TStack 中是私有的,因此没有直接的方法来创建可以访问它的 TObjectStack 后代。

我意识到我可以使用 ToArray 按索引访问项目,但这会创建一个单独的数组,这似乎只是为了访问 FItems 中的单个项目而浪费时间和空间。

有任何想法吗?

4

1 回答 1

4

改用就好TObjectList了。您可以访问所需的所有元素,并且可以在要视为堆栈顶部的任何一端对其进行修改。

于 2013-09-22T02:01:32.567 回答