如何简化创建一个未填充的整数数组

时间:2017-02-11 11:03:46

标签: delphi

如何在不创建/定义x整数的情况下创建x整数数组。此示例将创建一个10整数数组(在每个元素中预先填充零):

 var
   IntArray : TArray<Integer>;
 begin
   IntArray := TArray<Integer>.Create(0,0,0,0,0,0,0,0,0,0);
 end;

所以我创建了一个长整数为120的整数数组,这看起来很混乱:

IntA := TArray<Integer>.Create(
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0,
0,0,0,0,0,0,0,0,0,0);

现在我需要创建一个9000个整数的数组,我不需要(或想要)用9000个零预先填充数组。

是否有如下命令:

IntA := TArray<Integer>.Array[0..9000]; //This doesn't work

感谢。

1 个答案:

答案 0 :(得分:7)

使用SetLength

SetLength(IntA, N);

其中N是您要分配的数组的长度。

procedure SetLength(var S: <string or dynamic array>; NewLength: Integer);
     

对于动态数组变量, SetLength 将S引用的数组重新分配给给定的长度。保留数组中的现有元素,并将新分配的空间设置为0或nil。对于多维动态数组,SetLength可能需要多个长度参数(最多为数组维数)。