Delphi - 泛型 - 是否有Add方法?

时间:2014-08-14 17:22:31

标签: delphi delphi-xe4

使用泛型来初始化数组非常方便,但是我找不到Add方法,所以我推断一下(如果我错了,请纠正我)在这种情况下,我必须使用传统方式:SetLength放大数组,然后将新值分配给最近添加的数组项。是这样吗?

2 个答案:

答案 0 :(得分:4)

泛型不会初始化数组或其他任何内容。它们只是一种声明灵活类型的手段,而不是数据。不要被动态数组构造函数混淆,它允许您使用类似构造函数的synax来初始化带有值的动态数组,但这与泛型无关。

数组(无论是Generic还是其他方式)根本没有任何方法,更不用说Add()方法了。您必须手动编写逻辑代码,如您所述 - 增加数组长度,然后为新分配的插槽分配值。这是目前唯一可行的选择。

答案 1 :(得分:1)

我假设您正在寻找一种Add()方法,您根本不想要一个数组

相反,你可能想要一个真正的通用(类似数组) 集合,如TArrayList<T>。它包含Array所做的所有内容,以及Add()Remove()AddRange()等所有收集方法

通用TList<T>也可以工作,但缺少您可能想要的所有熟悉的Array方法和属性。

您可能还想查看其他一些通用集合类,例如TDictionary<T>THashTable<T>等等。