在 FreePascal 中制作紧凑的记录列表?

Make compact list of records in FreePascal?

我有一个内存很大的结构。它是 TList;每个项目都是 TMyObject 并且 TMyObject 包含记录的数据字段(具有 n 个字段:整数,布尔值)。列表可能有 1.000.000 个项目。

我想让列表紧凑:我想要的列表不是 TMyObject 而是记录列表,每个列表项都必须是记录。所以没有创建代理 TMyObjects。记录按原样保存在列表中。

怎么做 "list class" w/o 制作新的大代码,w/o 制作我自己的 Insert/Delete/Add,w/o 重新分配 [=21= 中的记录]?

(使用FPC 3.0, Lazarus)

有几个选项,但我认为最合适的是 TFPGList<T>