Arraydimensionen in Visual Basic
Eine Dimension ist eine Richtung, in der sich die Spezifikation von Arrayelementen variieren lässt. Ein Array, in dem die Tagesverkaufsumsätze eines Monats abgelegt sind, hat eine Dimension (Tag des Monats). Ein Array, in dem die Tagesverkaufsumsätze einzelner Abteilungen abgelegt sind, hat zwei Dimensionen (Abteilungsnummer und Tag des Monats). Die Anzahl der Dimensionen eines Arrays wird als Rang bezeichnet.
Hinweis
Mit der Rank-Eigenschaft können Sie bestimmen, wie viele Dimensionen ein Array aufweist.
Arbeiten mit Dimensionen
Ein Arrayelement wird durch die Angabe eines Index- oder Subscript-Werts seiner Dimensionen identifiziert. Die Elemente einer Dimension sind vom Index 0 bis zum höchsten Indexwert der Dimension zusammenhängend angeordnet.
In den folgenden Abbildungen wird das Strukturkonzept von Arrays mit unterschiedlichen Rängen dargestellt. Für jedes abgebildete Element wird der Indexwert angegeben, über den darauf zugegriffen werden kann. Beispielsweise kann durch die Angabe der Indizes (1, 0) auf das erste Element der zweiten Zeile des zweidimensionalen Arrays zugegriffen werden.
Eindimensionales Array
Zweidimensionales Array
Dreidimensionales Array
Eine Dimension
Viele Arrays haben nur eine Dimension, etwa die Anzahl von Personen verschiedener Altersgruppen. Zur Festlegung eines Elements ist lediglich die Angabe der Altersgruppe erforderlich, deren Anzahl im Element abgelegt ist. Deshalb wird für ein solches Array nur ein Index verwendet. Im folgenden Beispiel wird eine Variable deklariert, die ein eindimensionales Array enthalten soll, in dem die Anzahl der Personen mit einem Alter von 0 bis 120 Jahren aufgeführt sind.
Dim ageCounts(120) As UInteger
Zwei Dimensionen
Einige Arrays haben zwei Dimensionen, beispielsweise die Anzahl der Büros in den einzelnen Stockwerken der verschiedenen Gebäude auf einem Universitäts- oder Firmengelände. Zur Festlegung eines Elements müssen sowohl die Gebäudenummer als auch das Stockwerk angegeben werden. Außerdem ist in jedem Element die Anzahl der Büros für die betreffende Kombination von Gebäude und Stockwerk abgelegt. Deshalb werden für ein solches Array zwei Indizes verwendet. Im folgenden Beispiel wird eine Variable deklariert, die ein zweidimensionales Array mit der Anzahl der Büros in den Gebäuden 0 bis 40 und den Stockwerken 0 bis 5 enthalten soll.
Dim officeCounts(40, 5) As Byte
Ein zweidimensionales Array wird auch als rechteckiges Array bezeichnet.
Drei Dimensionen
Einige Arrays haben drei Dimensionen, z. B. Werte des dreidimensionalen Raums. Für ein solches Array werden drei Indizes verwendet, die in diesem Fall die Koordinaten x, y und z des physikalischen Raums darstellen. Im folgenden Beispiel wird eine Variable deklariert, die ein dreidimensionales Array mit den Lufttemperaturen verschiedener Punkte eines dreidimensionalen Raums enthalten soll.
Dim airTemperatures(99, 99, 24) As Single
Mehr als drei Dimensionen
Obwohl ein Array 32 Dimensionen haben kann, werden selten Arrays mit mehr als drei Dimensionen verwendet.
Hinweis
Wenn Sie einem Array Dimensionen hinzufügen, erfordert dieses Array insgesamt erheblich mehr Speicher. Sie sollten daher mehrdimensionale Arrays mit Bedacht verwenden.
Verwenden von verschiedenen Dimensionen
Angenommen, Sie möchten die Tagesverkaufsumsätze des aktuellen Monats verfolgen. Sie können hierzu, wie im folgenden Beispiel gezeigt, ein eindimensionales Array mit 31 Elementen deklarieren, die jeweils einen Tag des Monats darstellen.
Dim salesAmounts(30) As Double
Nehmen wir weiter an, Sie möchten nicht nur die Daten für die einzelnen Tage eines Monats verfolgen, sondern auch die Daten für die einzelnen Monate eines Jahres. Sie können hierzu, wie im folgenden Beispiel gezeigt, ein zweidimensionales Array mit 12 Zeilen (für die Monate) und 31 Spalten (für die Tage) deklarieren.
Dim salesAmounts(11, 30) As Double
Nehmen wir nun an, Sie möchten in diesem Array Daten über mehrere Jahre ablegen. Wenn Sie die Umsatzzahlen über 5 Jahre hinweg verfolgen möchten, können Sie, wie im folgenden Beispiel gezeigt, ein dreidimensionales Array mit 5 Schichten, 12 Zeilen und 31 Spalten deklarieren.
Dim salesAmounts(4, 11, 30) As Double
Beachten Sie, dass jede Dimension von salesAmounts als Wert deklariert wird, der um eins geringer als die erforderliche Länge der Dimension ist, weil der Index mit 0 beginnend bis zum Höchstwert gezählt wird. Beachten Sie auch, dass die Größe des Arrays mit jeder neuen Dimension zunimmt. Die drei Arrays in den vorherigen Beispielen haben eine Größe von 31, 372 bzw. 1.860 Elementen.
Hinweis
Arrays können auch ohne die Dim-Anweisung oder die New-Klausel erstellt werden.Beispielsweise können Sie die CreateInstance-Methode aufrufen, oder eine andere Komponente kann Ihrem Code ein auf diese Weise erstelltes Array übergeben.Ein solches Array kann eine untere Grenze besitzen, die ungleich 0 ist.Mit der GetLowerBound-Methode bzw. der LBound-Funktion können Sie die untere Grenze einer Dimension überprüfen.
Siehe auch
Aufgaben
Problembehandlung bei Arrays (Visual Basic)