如何:更改数组的大小
更新:2007 年 11 月
通过为数组变量分配新的数组对象,可以调整它的大小。您既可以使用标准分配语句也可以使用 ReDim 语句 (Visual Basic)。在任一种情况下,都会用全新的数组替换原始数组,并且数组变量会指向新数组。
调整数组的大小可以帮助您有效管理内存。例如,您可以从一个小数组开始,然后在需要更多元素时增加它的大小。或者,可以从一个大数组开始,然后在不再需要它的全部元素时减小它的大小。此技术只在您需要它时占用额外的内存。
使用标准分配语句调整数组变量的大小
新建数组对象,指定新的维度长度。
为数组变量分配新数组对象。
Dim thisArrayVariable() As Integer = New Integer(99) {} thisArrayVariable = New Integer(49) {}
使用 ReDim 语句调整数组变量的大小
在 ReDim 语句中为数组变量指定新的维度长度。
Dim thisArrayVariable() As Integer = New Integer(99) {} ReDim thisArrayVariable(9)
当对数组执行 ReDim 时,其元素的现有值通常会丢失。但您可以在 ReDim 语句中使用 Preserve 关键字来保持这些值。
调整数组变量的大小同时保留现有元素值
在 ReDim 语句中为数组变量指定新的维度长度。
将 Preserve 关键字添加到 ReDim 语句中。下面的示例新建一个数组,从 arrayToIncrease 中现有数组的相应元素初始化它的元素,并将该新数组分配给数组变量 arrayToIncrease。
Dim arrayToIncrease(9, 49) ReDim Preserve arrayToIncrease(9, 199)
在多维数组中,当您使用 Preserve 时,只能更改最后一个维度的长度。如果试图更改任何其他维度,则会发生 ArrayTypeMismatchException 异常。
如果使用 Preserve 关键字调整大数组的大小,请记住,Visual Basic 必须将所有现有元素复制到新数组中。这可能会降低性能。