使用泛型来初始化数组非常方便,但是我找不到Add方法,所以我推断一下(如果我错了,请纠正我)在这种情况下,我必须使用传统方式:SetLength放大数组,然后将新值分配给最近添加的数组项。是这样吗?
答案 0 :(得分:4)
泛型不会初始化数组或其他任何内容。它们只是一种声明灵活类型的手段,而不是数据。不要被动态数组构造函数混淆,它允许您使用类似构造函数的synax来初始化带有值的动态数组,但这与泛型无关。
数组(无论是Generic还是其他方式)根本没有任何方法,更不用说Add()
方法了。您必须手动编写逻辑代码,如您所述 - 增加数组长度,然后为新分配的插槽分配值。这是目前唯一可行的选择。
答案 1 :(得分:1)
我假设您正在寻找一种Add()
方法,您根本不想要一个数组。
相反,你可能想要一个真正的通用(类似数组) 集合,如TArrayList<T>
。它包含Array
所做的所有内容,以及Add()
,Remove()
,AddRange()
等所有收集方法
通用TList<T>
也可以工作,但缺少您可能想要的所有熟悉的Array方法和属性。
您可能还想查看其他一些通用集合类,例如TDictionary<T>
,THashTable<T>
等等。