Freigeben über


So geht's: Initialisieren einer Array-Variablen in Visual Basic

Sie initialisieren eine Arrayvariable, indem Sie ein Array-Literal in eine New Anweisung einfügen und die Anfangswerte des Arrays festlegen. Sie können entweder den Typ angeben oder zulassen, dass er von den Werten im Arrayliteral abgeleitet wird. Weitere Informationen dazu, wie der Typ abgeleitet wird, finden Sie unter "Auffüllen eines Arrays mit Anfangswerten" in Arrays.

So initialisieren Sie eine Arrayvariable mit einem Arrayliteral

  • Geben Sie entweder in der New Klausel oder beim Zuweisen des Arraywerts die Elementwerte in geschweiften Klammern an ({}). Das folgende Beispiel zeigt verschiedene Möglichkeiten zum Deklarieren, Erstellen und Initialisieren einer Variablen, die ein Array mit Elementen vom Typ Charenthält.

    ' 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}
    

    Nachdem jede Anweisung ausgeführt wurde, weist das erstellte Array eine Länge von 3 auf, wobei Elemente bei Index 0 bis Index 2 die Anfangswerte enthalten. Wenn Sie sowohl die obere Grenze als auch die Werte angeben, müssen Sie einen Wert für jedes Element von Index 0 bis zur oberen Grenze angeben.

    Beachten Sie, dass Sie keine Indexobergrenze angeben müssen, wenn Elementwerte in einem Arrayliteral bereitgestellt werden. Wenn keine Obergrenze angegeben wird, wird die Größe des Arrays anhand der Anzahl der Werte im Arrayliteral abgeleitet.

So initialisieren Sie eine multidimensionale Arrayvariable mithilfe von Arrayliteralen

  • Schachteln Sie Werte in geschweiften Klammern ({}) in geschweiften Klammern. Stellen Sie sicher, dass alle geschachtelten Arrayliterale als Arrays des gleichen Typs und mit derselben Länge abgeleitet werden. Das folgende Codebeispiel zeigt mehrere Beispiele für die mehrdimensionale Arrayinitialisierung.

    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}}}
    
  • Sie können die Arraygrenzen explizit angeben oder weglassen und den Compiler die Arraygrenzen basierend auf den Werten im Array-Literal ableiten lassen. Wenn Sie sowohl die oberen Grenzen als auch die Werte angeben, müssen Sie einen Wert für jedes Element von Index 0 bis zur oberen Grenze in jeder Dimension angeben. Das folgende Beispiel zeigt verschiedene Möglichkeiten zum Deklarieren, Erstellen und Initialisieren einer Variablen, die ein zweidimensionales Array mit Elementen vom Typ enthält. 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}}
    

    Nach ausführung jeder Anweisung enthält das erstellte Array sechs initialisierte Elemente mit Indizes(0,0), , (0,1)(0,2), (1,0), (1,1)und (1,2). Jeder Array-Position enthält den Wert 10.

  • Im folgenden Beispiel wird ein mehrdimensionales Array durchlaufen. Fügen Sie in einer Windows-Konsolenanwendung, die in Visual Basic geschrieben wurde, den Code in die Sub Main() Methode ein. Die letzten Kommentare zeigen die Ausgabe an.

    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
    

So initialisieren Sie eine verzweigte Arrayvariable mit Arrayliteralen

  • Schachteln Sie Objektwerte in geschweiften Klammern ({}). Obwohl Sie auch Arrayliterale schachteln können, die Arrays von verschiedener Länge angeben, stellen Sie bei einem verzweigten Array sicher, dass die geschachtelten Arrayliterale in runden Klammern (()) eingeschlossen sind. Durch die Klammern wird die Auswertung der geschachtelten Arrayliterale erzwungen, und die erhaltenen Arrays werden als Anfangswerte des verzweigten Arrays verwendet. Im folgenden Codebeispiel werden zwei Beispiele für die Initialisierung verzweigter Arrays veranschaulicht.

    ' 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() {}}
    
  • Im folgenden Beispiel wird ein verzweigtes Array durchlaufen. Fügen Sie in einer Windows-Konsolenanwendung, die in Visual Basic geschrieben wurde, den Code in die Sub Main() Methode ein. Die letzten Kommentare im Code zeigen die Ausgabe an.

    ' 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
    

Siehe auch