Gewusst wie: Initialisieren einer Arrayvariablen in Visual Basic

Indem Sie ein Arrayliteral verwenden, können Sie ein Array mit Anfangswerten auffüllen, wenn Sie es erstellen.Sie können das Arrayliteral als Teil der - Klausel New einschließen und entweder, den Typ anzugeben oder von den Werten im Arrayliteral abgeleitet werden ihn zu ermöglichen.Weitere Informationen dazu, wie der Typ abgeleitet wird, finden Sie unter "Auffüllen eines Arrays mit Anfangswerten" in Arrays in Visual Basic.

So initialisieren Sie eine Arrayvariable mit einem Arrayliteral

  • Geben Sie die Elementwerte in der New-Klausel oder beim Zuweisen des Arraywerts in geschweiften Klammern ({}) an.Im folgenden Beispiel werden mehrere Möglichkeiten veranschaulicht, wie Variablen so deklariert, erstellt und initialisiert werden können, dass sie ein Array mit Elementen vom Typ Char enthalten.

    ' 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 ausführt, hat das Array, das erstellt wird, eine Länge von 3, mit Elementen von Index 0 bis Index 2, der die Anfangswerte enthalten.Wenn Sie sowohl die Obergrenze als auch die Werte angeben, müssen Sie für jedes Element von Index 0 bis zur Obergrenze einen Wert einfügen.

    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 mehrdimensionale Arrayvariable mit 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.Im folgenden Codebeispiel werden mehrere Beispiele für die Initialisierung mehrdimensionaler Arrays veranschaulicht.

    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 diese Angabe auslassen, sodass der Compiler die Arraygrenzen von den Werten im Arrayliteral ableitet.Wenn Sie sowohl die Obergrenzen als auch die Werte vorgeben, müssen Sie in jeder Dimension für jedes Element von Index 0 bis zur Obergrenze einen Wert angeben.Im folgenden Beispiel werden mehrere Möglichkeiten veranschaulicht, wie Variablen so deklariert, erstellt und initialisiert werden können, dass sie ein zweidimensionales Array mit Elementen vom Typ Short enthalten.

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

    Nachdem jede Anweisung ausführt, enthält das erstellte Array sechs initialisierte Elemente, die Indizes (0,0), (0,1), (0,2), (1,0), (1,1) und (1,2) haben.Jede Arrayposition enthält den Wert 10.

  • Im folgenden Beispiel wird durch ein mehrdimensionales Array durch.In Visual Basic Console Application fügen Sie den Code in der Sub Main()-Methode ein.Die Letztkommentare 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 ({}).Sie können zwar auch Arrayliterale schachteln, die Arrays von verschiedener Länge angeben, stellen Sie jedoch 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 durch ein verzweigtes Array durch.Fügen Sie den Code in der Sub Main()-Methode in Visual Basic Console Application ein.Die Kommentare im Code geben an, wie die Ausgabe sein sollte.

    ' 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

Aufgaben

Problembehandlung bei Arrays (Visual Basic)

Weitere Ressourcen

Arrays in Visual Basic