Condividi tramite


Procedura: inizializzare una matrice irregolare

Aggiornamento: novembre 2007

Quando si specifica una variabile di matrice irregolare, è possibile specificare le lunghezze delle dimensioni solo per la matrice di primo livello. Esistono diversi modi per eseguire tale operazione.

Per inizializzare una variabile di matrice irregolare

  • Nella dichiarazione della variabile di matrice specificare il limite superiore di primo livello dell'indice nella prima coppia di parentesi, separato da virgole. Nell'esempio riportato di seguito viene dichiarata e creata una variabile che deve contenere una matrice irregolare di elementi Byte, specificando soltanto il limite superiore di primo livello.

    Dim rainfall(11)() As Byte
    

    Dopo l'esecuzione di questa istruzione, la matrice nella variabile rainfall conterrà 12 elementi, ciascuno dei quali è una matrice vuota di elementi Byte.

    -oppure-

  • Nella clausola New specificare il limite superiore di primo livello dell'indice nella prima coppia di parentesi, seguito da parentesi graffe vuote ({}). Nell'esempio riportato di seguito viene dichiarata e creata una variabile che deve contenere una matrice irregolare di elementi Short, specificando soltanto il limite superiore di primo livello.

    Dim snowfall()() As Short = New Short(11)() {}
    

    Dopo l'esecuzione di questa istruzione, la matrice nella variabile snowfall conterrà 12 elementi, ciascuno dei quali è una matrice vuota di elementi Short.

    Nota:

    È possibile inizializzare il limite superiore di primo livello dell'indice in un'unica posizione. Se un limite superiore viene specificato tra parentesi dopo il nome della variabile di matrice, non è possibile utilizzare una clausola New. Se il limite superiore viene specificato tra parentesi nella clausola New, è necessario lasciare vuote le parentesi dopo il nome della variabile.

    -oppure-

  • Nella clausola New specificare il limite superiore di primo livello dell'indice tra parentesi e immettere i valori degli elementi tra parentesi graffe ({}). Nell'esempio riportato di seguito viene dichiarata, creata e inizializzata una variabile che deve contenere una matrice irregolare di elementi Char, specificando il limite superiore di primo livello e i valori. Notare le clausole New nidificate per l'inizializzazione delle matrici di livello inferiore.

    Dim decodeValues()() As Char = New Char(1)() {New Char() {"a"c, "b"c}, New Char() {"p"c, "q"c}}
    

    Dopo l'esecuzione di questa istruzione, la matrice nella variabile decodeValues conterrà due elementi, ciascuno dei quali è una matrice Char di lunghezza 1 in cui l'elemento con indice 0 contiene un valore inizializzato. Se si specificano sia il limite superiore di primo livello che i valori, è necessario includere un valore per ogni elemento di primo livello dall'indice 0 al limite superiore.

    -oppure-

  • Nella clausola New omettere le parentesi di primo livello e fornire i valori degli elementi tra parentesi graffe ({}). Nell'esempio riportato di seguito viene dichiarata, creata e inizializzata una variabile che deve contenere una matrice irregolare di elementi Byte, specificando soltanto i valori degli elementi. Fare attenzione ai due livelli di parentesi graffe nella clausola New.

    Dim firstValues()() As Byte = {New Byte() {2, 1}, New Byte() {3, 0}}
    

    Dopo l'esecuzione di questa istruzione, la matrice nella variabile firstValues avrà lunghezza 2 e conterrà elementi firstValues(0) e firstValues(1). Ciascun elemento viene inizializzato come una matrice Byte a due elementi, il primo dei quali conterrà i valori 2 e 1 e il secondo i valori 3 e 0.

Vedere anche

Attività

Procedura: dichiarare una variabile di matrice

Procedura: creare una matrice di matrici

Procedura: inizializzare una variabile di matrice

Procedura: inizializzare una matrice multidimensionale

Risoluzione dei problemi relativi alle matrici

Concetti

Matrici irregolari in Visual Basic

Scrittura di codice compatibile con CLS

Riferimenti

New (Visual Basic)

Altre risorse

Matrici in Visual Basic