Gewusst wie: Ändern der Größe eines Arrays

Aktualisiert: November 2007

Die Größe einer Arrayvariablen wird geändert, indem Sie ihr ein neues Arrayobjekt zuweisen. Sie können dazu entweder eine Standardzuweisungsanweisung oder die ReDim-Anweisung (Visual Basic) verwenden. In beiden Fällen wird das Originalarray durch ein völlig neues Array ersetzt. Die Arrayvariable zeigt auf das neue Array.

Durch eine Änderung der Arraygröße können Sie den Arbeitsspeicher effizient verwalten. So können Sie beispielsweise mit einem kleinen Array beginnen und es vergrößern, wenn Sie mehr Elemente benötigen. Alternativ dazu können Sie mit einem großen Array beginnen und es verkleinern, wenn Sie nur noch einen Teil davon benötigen. Bei dieser Technik wird der zusätzliche Arbeitsspeicher nur dann in Anspruch genommen, wenn Sie ihn benötigen.

So ändern Sie die Größe einer Arrayvariablen mithilfe einer Standardzuweisungsanweisung

  1. Erstellen Sie das neue Arrayobjekt, und geben Sie die neuen Dimensionslängen an.

  2. Weisen Sie der Arrayvariablen das neue Arrayobjekt zu.

    Dim thisArrayVariable() As Integer = New Integer(99) {}
    thisArrayVariable = New Integer(49) {}
    

So ändern Sie die Größe einer Arrayvariablen mithilfe der ReDim-Anweisung

  • Geben Sie die neuen Dimensionslängen für die Arrayvariable in der ReDim-Anweisung an.

    Dim thisArrayVariable() As Integer = New Integer(99) {}
    ReDim thisArrayVariable(9)
    

Wenn Sie ein Array mit ReDim bearbeiten, gehen die vorhandenen Werte seiner Elemente in der Regel verloren. Dies können Sie jedoch verhindern, indem Sie das Preserve-Schlüsselwort in die ReDim-Anweisung einbeziehen.

So ändern Sie die Größe einer Arrayvariablen unter Beibehaltung bestehender Elementwerte

  1. Geben Sie die neuen Dimensionslängen für die Arrayvariable in der ReDim-Anweisung an.

  2. Fügen Sie das Preserve-Schlüsselwort in die ReDim-Anweisung ein. Das folgende Beispiel zeigt das Erstellen eines neuen Arrays, das Initialisieren seiner Elemente von den entsprechenden Elementen des bestehenden Arrays in arrayToIncrease und das Zuweisen des neuen Arrays zur Arrayvariablen arrayToIncrease.

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

Wenn Sie Preserve in mehrdimensionalen Arrays verwenden, kann nur die letzte Dimension verändert werden. Wenn Sie versuchen, eine der anderen Dimensionen zu ändern, tritt eine ArrayTypeMismatchException-Ausnahme auf.

Wenn Sie die Größe eines großen Arrays mit dem Preserve-Schlüsselwort ändern, dürfen Sie nicht vergessen, dass Visual Basic alle bestehenden Elemente in das neue Array kopieren muss. Dies kann die Leistung reduzieren.

Siehe auch

Aufgaben

Gewusst wie: Deklarieren einer Arrayvariablen

Gewusst wie: Erstellen eines Arrays

Gewusst wie: Initialisieren einer Arrayvariablen

Gewusst wie: Bestimmen der Größe eines Arrays

Gewusst wie: Bestimmen der Länge einer Dimension eines Arrays

Gewusst wie: Zuweisen eines Arrays zu einem anderen Array

Gewusst wie: Ändern eines Arrays in ein anderes Array

Problembehandlung bei Arrays

Konzepte

Arraygröße in Visual Basic

Weitere Ressourcen

Arrays in Visual Basic