如何:更改数组的大小

更新:2007 年 11 月

通过为数组变量分配新的数组对象,可以调整它的大小。您既可以使用标准分配语句也可以使用 ReDim 语句 (Visual Basic)。在任一种情况下,都会用全新的数组替换原始数组,并且数组变量会指向新数组。

调整数组的大小可以帮助您有效管理内存。例如,您可以从一个小数组开始,然后在需要更多元素时增加它的大小。或者,可以从一个大数组开始,然后在不再需要它的全部元素时减小它的大小。此技术只在您需要它时占用额外的内存。

使用标准分配语句调整数组变量的大小

  1. 新建数组对象,指定新的维度长度。

  2. 为数组变量分配新数组对象。

    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 关键字来保持这些值。

调整数组变量的大小同时保留现有元素值

  1. 在 ReDim 语句中为数组变量指定新的维度长度。

  2. Preserve 关键字添加到 ReDim 语句中。下面的示例新建一个数组,从 arrayToIncrease 中现有数组的相应元素初始化它的元素,并将该新数组分配给数组变量 arrayToIncrease。

    Dim arrayToIncrease(9, 49)
    ReDim Preserve arrayToIncrease(9, 199)
    

在多维数组中,当您使用 Preserve 时,只能更改最后一个维度的长度。如果试图更改任何其他维度,则会发生 ArrayTypeMismatchException 异常。

如果使用 Preserve 关键字调整大数组的大小,请记住,Visual Basic 必须将所有现有元素复制到新数组中。这可能会降低性能。

请参见

任务

如何:声明数组变量

如何:创建数组

如何:初始化数组变量

如何:确定数组的大小

如何:确定一维数组的长度

如何:将一个数组赋给另一个数组

如何:将一个数组更改为其他数组

数组疑难解答

概念

Visual Basic 中的数组大小

其他资源

数组 (Visual Basic)