Condividi tramite


Procedura: modificare la dimensione di una matrice

Aggiornamento: novembre 2007

Per modificare la dimensione di una variabile di matrice, è necessario assegnare a tale variabile un nuovo oggetto di matrice. È possibile utilizzare un'istruzione di assegnazione standard oppure l'Istruzione ReDim (Visual Basic). In entrambi i casi, la matrice originale viene sostituita da una matrice completamente nuova, a cui punterà la variabile di matrice.

La modifica della dimensione di una matrice consente di gestire in maniera efficiente la memoria. È possibile, ad esempio, cominciare con una matrice di piccole dimensioni da ingrandire nel caso in cui siano necessari altri elementi. In alternativa, è possibile cominciare con una matrice di grandi dimensioni da ridurre nel caso in cui non sia più necessario utilizzarla tutta. Questa tecnica consente di utilizzare memoria aggiuntiva solo se necessario.

Per modificare la dimensione di una variabile di matrice mediante un'istruzione di assegnazione standard

  1. Creare il nuovo oggetto di matrice specificando le nuove lunghezze di dimensione.

  2. Assegnare il nuovo oggetto di matrice alla variabile di matrice.

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

Per modificare la dimensione di una variabile di matrice mediante l'istruzione ReDim

  • Specificare le nuove lunghezze di dimensione per la variabile di matrice nell'istruzione ReDim.

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

Quando si modifica la dimensione di una matrice tramite ReDim, i valori esistenti dei rispettivi elementi vanno in genere persi. È tuttavia possibile conservarli includendo la parola chiave Preserve nell'istruzione ReDim.

Per modificare la dimensione di una variabile di matrice conservando i valori degli elementi esistenti

  1. Specificare le nuove lunghezze di dimensione per la variabile di matrice nell'istruzione ReDim.

  2. Aggiungere la parola chiave Preserve nell'istruzione ReDim. Nell'esempio riportato di seguito viene creata una nuova matrice, ne vengono inizializzati gli elementi dagli elementi corrispondenti della matrice esistente in arrayToIncrease e viene assegnata la nuova matrice alla variabile arrayToIncrease.

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

In una matrice multidimensionale l'utilizzo di Preserve consente di modificare solo la lunghezza dell'ultima dimensione. Se si prova a modificare una delle altre dimensioni, si verificherà un'eccezione ArrayTypeMismatchException.

Se si modifica la dimensione di una matrice grande utilizzando la parola chiave Preserve, si consideri che in Visual Basic tutti gli elementi esistenti dovranno essere copiati nella nuova matrice. Questa operazione potrebbe rallentare le prestazioni.

Vedere anche

Attività

Procedura: dichiarare una variabile di matrice

Procedura: creare una matrice

Procedura: inizializzare una variabile di matrice

Procedura: determinare la dimensione di una matrice

Procedura: determinare la lunghezza di una dimensione di una matrice

Procedura: assegnare una matrice a un'altra matrice

Procedura: cambiare una matrice in una matrice differente

Risoluzione dei problemi relativi alle matrici

Concetti

Dimensione della matrice in Visual Basic

Altre risorse

Matrici in Visual Basic