共用方式為


HOW TO:變更陣列的大小

更新:2007 年 11 月

您可以將新陣列物件指定給陣列變數,以重新調其大小。您可以使用標準指派陳述式 (Assignment Statement) 或 ReDim 陳述式 (Visual Basic)。不論您使用哪一種方法,全新陣列會取代原始陣列,而陣列變數則會指向新陣列。

重新調整陣列的大小可協助您有效管理記憶體。例如,您可以先從小的陣列開始,如果您需要更多元素則可以擴大陣列的大小。或者,您可以從大的陣列開始,如果您不再需要使用此陣列的全部元素,則可以將其縮小。這種方法只會在您需要時暫用額外的記憶體。

使用標準指派陳述式 (Statement) 重新調整陣列變數的大小

  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. 在 ReDim 陳述式中加入 Preserve 關鍵字。下列範圍會建立一個新陣列,從 arrayToIncrease 中現有陣列的對應元素初始化新陣列元素,並指派陣列變數 arrayToIncrease 給新陣列。

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

如果您在多維陣列使用 Preserve,則只能變更最後一個維度的長度。如果您嘗試變更其他維度時,就會發生 ArrayTypeMismatchException 例外狀況。

如果您使用 Preserve 關鍵字重新調整大型陣列的大小,請注意 Visual Basic 必須將所有的現有元素複製到新陣列。這樣無法提升效能。

請參閱

工作

HOW TO:宣告陣列變數

HOW TO:建立陣列

HOW TO:初始化陣列變數

HOW TO:判斷陣列的大小

HOW TO:判斷陣列某個維度的長度

HOW TO:指派一個陣列至另一個陣列

HOW TO:將陣列變更為不同的陣列

陣列疑難排解

概念

Visual Basic 中的陣列大小

其他資源

Visual Basic 中的陣列