Procedura: inizializzare una variabile di matrice in Visual Basic

Utilizzando un valore letterale di matrice, è possibile popolare una matrice con i valori iniziali alla creazione.È possibile includere il valore letterale di matrice come parte della clausola di New e per specificare il tipo o per permetterlo venga dedotto dai valori nel valore letterale di matrice.Per ulteriori informazioni su come tipo viene dedotto, vedere "popolare una matrice con i valori iniziali" in Matrici in Visual Basic.

Per inizializzare una variabile di matrice tramite un valore letterale di matrice

  • Nella clausola New o quando si assegna il valore della matrice, fornire i valori degli elementi tra parentesi graffe ({}).Nell'esempio seguente vengono illustrati diversi modi per dichiarare, creare e inizializzare una variabile in modo che contenga una matrice con elementi di tipo Char.

    ' The following five lines of code create the same array.
    ' Preferred syntaxes are on the lines with chars1 and chars2.
    Dim chars1 = {"%"c, "&"c, "@"c}
    Dim chars2 As Char() = {"%"c, "&"c, "@"c}
    
    Dim chars3() As Char = {"%"c, "&"c, "@"c}
    Dim chars4 As Char() = New Char(2) {"%"c, "&"c, "@"c}
    Dim chars5() As Char = New Char(2) {"%"c, "&"c, "@"c}
    

    Dopo ogni istruzione viene eseguita, la matrice creata ha una lunghezza pari a 3, con elementi dell'indice 0 all'indice 2 contengono i valori iniziali.Se si specificano sia il limite superiore che i valori, è necessario includere un valore per ogni elemento dall'indice 0 al limite superiore.

    Si noti che non è necessario specificare il limite superiore dell'indice se si forniscono i valori degli elementi in un valore letterale di matrice.Se non viene specificato alcun limite superiore, la dimensione della matrice viene dedotta in base al numero di valori nel valore letterale di matrice.

Per inizializzare una variabile di matrice multidimensionale tramite valori letterali della matrice

  • Annidare i valori tra parentesi graffe ({}).Assicurarsi che i valori letterali della matrice annidati vengano tutti dedotti come matrici dello stesso tipo e con la stessa lunghezza.Nell'esempio di codice seguente vengono illustrati diversi esempi di inizializzazione di matrici multidimensionali.

    Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
    Dim customerData = {{"City Power & Light", "http://www.cpandl.com/"},
                        {"Wide World Importers", "http://wideworldimporters.com"},
                        {"Lucerne Publishing", "http://www.lucernepublishing.com"}}
    
    ' You can nest array literals to create arrays that have more than two 
    ' dimensions.
    Dim twoSidedCube = {{{1, 2}, {3, 4}}, {{5, 6}, {7, 8}}}
    
  • È possibile specificare in modo esplicito i limiti della matrice o tralasciarli e fare in modo che il compilatore li deduca in base ai valori nel valore letterale di matrice.Se si specificano sia i limiti superiori che i valori, è necessario includere un valore per ogni elemento dall'indice 0 al limite superiore in ciascuna dimensione.Nell'esempio seguente vengono illustrati diversi modi per dichiarare, creare e inizializzare una variabile in modo che contenga una matrice bidimensionale con elementi di tipo Short.

    ' The following five lines of code create the same array.
    ' Preferred syntaxes are on the lines with scores1 and scores2.
    Dim scores1 = {{10S, 10S, 10S}, {10S, 10S, 10S}}
    Dim scores2 As Short(,) = {{10, 10, 10}, {10, 10, 10}}
    
    Dim scores3(,) As Short = {{10, 10, 10}, {10, 10, 10}}
    Dim scores4 As Short(,) = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    Dim scores5(,) As Short = New Short(1, 2) {{10, 10, 10}, {10, 10, 10}}
    

    Dopo ogni istruzione viene eseguita, la matrice creata contiene sei elementi inizializzati con indici (0,0), (0,1), (0,2), (1,0), (1,1)e (1,2).Ogni posizione della matrice contiene il valore 10.

  • Nell'esempio scorrere una matrice multidimensionale.In Visual Basic Console Application, incollare il codice nel metodo di Sub Main().Le ultime commenti illustrato l'output.

    Dim numbers = {{1, 2}, {3, 4}, {5, 6}}
    
    ' Iterate through the array.
    For index0 = 0 To numbers.GetUpperBound(0)
        For index1 = 0 To numbers.GetUpperBound(1)
            Debug.Write(numbers(index0, index1).ToString & " ")
        Next
        Debug.WriteLine("")
    Next
    ' Output
    '  1 2
    '  3 4
    '  5 6
    

Per inizializzare una variabile di matrice di matrici tramite valori letterali della matrice

  • Annidare i valori degli oggetti tra parentesi graffe ({}).Sebbene sia possibile annidare anche valori letterali della matrice che specificano matrici di lunghezze diverse, nel caso di una matrice di matrici assicurarsi che i valori letterali della matrice annidati siano racchiusi tra parentesi (()).Le parentesi forzano la valutazione dei valori letterali della matrice annidati e le matrici risultanti vengono utilizzate come valori iniziali della matrice di matrici.Nell'esempio di codice seguente vengono illustrati diversi esempi di inizializzazione di matrici di matrici.

    ' Create a jagged array of arrays that have different lengths.
    Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})}
    
    ' Create a jagged array of Byte arrays.
    Dim images = {New Byte() {}, New Byte() {}, New Byte() {}}
    
  • Nell'esempio scorrere una matrice di matrici.Incollare il codice nel metodo di Sub Main()in Visual Basic Console Application.Commenti nel codice indicano quali l'output deve essere.

    ' Create a jagged array of arrays that have different lengths.
    Dim jaggedNumbers = {({1, 2, 3}), ({4, 5}), ({6}), ({7})}
    
    For indexA = 0 To jaggedNumbers.Length - 1
        For indexB = 0 To jaggedNumbers(indexA).Length - 1
            Debug.Write(jaggedNumbers(indexA)(indexB) & " ")
        Next
        Debug.WriteLine("")
    Next
    
    ' Output:
    '  1 2 3 
    '  4 5 
    '  6
    '  7
    

Vedere anche

Attività

Risoluzione dei problemi relativi alle matrici (Visual Basic)

Altre risorse

Matrici in Visual Basic