Procedura: inizializzare una variabile di matrice in Visual Basic
Inizializzare una variabile di matrice includendo un valore letterale di matrice in una clausola New e specificando i valori iniziali della matrice. È possibile specificare il tipo o consentire che sia dedotto dai valori nel valore letterale di matrice. Per ulteriori informazioni su come viene dedotto il tipo, vedere l'argomento relativo al popolamento di 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 l'esecuzione di ciascuna istruzione, la matrice creata ha una lunghezza di 3, con elementi tra l'indice 0 e l'indice 2 contenenti 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 l'esecuzione di ciascuna istruzione, la matrice creata contiene sei elementi inizializzati che includono gli indici (0,0), (0,1), (0,2), (1,0), (1,1) e (1,2). Ogni posizione della matrice contiene il valore 10.
L'esempio seguente scorrere una matrice multidimensionale. In un'applicazione della console Windows scritta in Visual Basic, incollare il codice nel metodo Sub Main(). Gli ultimi commenti illustrano 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() {}}
L'esempio seguente scorrere una matrice di matrici. In un'applicazione della console Windows scritta in Visual Basic, incollare il codice nel metodo Sub Main(). Gli ultimi commenti nel codice illustrano l'output.
' 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)