Arraydimensionen in Visual Basic

Eine Dimension ist eine Richtung, in der Sie die Spezifikation der Elemente eines Arrays variieren können. Ein Array, das den Gesamtumsatz für jeden Tag des Monats enthält, besitzt eine Dimension (den Tag des Monats). Ein Array, das den Gesamtumsatz nach Abteilung für jeden Tag des Monats enthält, besitzt zwei Dimensionen (die Abteilungsnummer und den Tag des Monats). Die Anzahl der Dimensionen in einem Array wird als Rang bezeichnet.

Hinweis

Mit der Rank-Eigenschaft können Sie bestimmen, wie viele Dimensionen ein Array aufweist.

Arbeiten mit Dimensionen

Sie geben ein Element eines Arrays an, indem Sie einen Index oder ein tiefergestelltes Zeichen für jede seiner Dimensionen angeben. Die Elemente sind entlang der einzelnen Dimensionen von Index 0 bis zum höchsten Index für diese Dimension zusammenhängend.

Die folgenden Abbildungen zeigen die konzeptionelle Struktur von Arrays mit unterschiedlichen Rangfolgen. Jedes Element in den Abbildungen zeigt die Indexwerte, die darauf zugreifen. Sie können beispielsweise auf das erste Element der zweiten Zeile des zweidimensionalen Arrays zugreifen, indem Sie die Indizes (1, 0) angeben.

Diagram that shows a one-dimensional array.

Diagram that shows a two-dimensional array.

Diagram that shows a three-dimensional array.

Eine Dimension

Viele Arrays haben nur eine Dimension, z. B. die Anzahl der Personen jedes Alters. Die einzige Anforderung, ein Element anzugeben, ist das Alter, für das dieses Element die Anzahl enthält. Daher verwendet ein solches Array nur einen Index. Im folgenden Beispiel wird eine Variable für ein eindimensionales Array der Altersangaben zwischen 0 und 120 Jahren deklariert.

Dim ageCounts(120) As UInteger

Zwei Dimensionen

Einige Arrays weisen zwei Dimensionen auf, z. B. die Anzahl der Büros auf jeder Etage jedes Gebäudes auf einem Campus. Die Spezifikation eines Elements erfordert sowohl die Gebäudenummer als auch die Etage, und jedes Element enthält die Anzahl für diese Kombination aus Gebäude und Etage. Daher verwendet ein solches Array zwei Indizes. Im folgenden Beispiel wird eine Variable für ein zweidimensionales Array der Anzahl von Büros für die Gebäude 0 bis 40 und die Etagen 0 bis 5 deklariert.

Dim officeCounts(40, 5) As Byte

Ein zweidimensionales Array wird auch als rechteckiges Array bezeichnet.

Drei Dimensionen

Einige Arrays weisen drei Dimensionen auf, z. B. Werte im dreidimensionalen Raum. Ein solches Array verwendet drei Indizes, die in diesem Fall die x-, y- und z-Koordinaten des physischen Raums darstellen. Im folgenden Beispiel wird eine Variable für ein dreidimensionales Array der Lufttemperaturen an verschiedenen Punkten in einem dreidimensionalen Volumen deklariert.

Dim airTemperatures(99, 99, 24) As Single

Mehr als drei Dimensionen

Obwohl ein Array bis zu 32 Dimensionen haben kann, sind mehr als drei selten.

Hinweis

Wenn Sie einem Array Dimensionen hinzufügen, erhöht sich der gesamte Speicher, der für das Array benötigt wird, erheblich. Verwenden Sie daher multidimensionale Arrays mit Sorgfalt.

Verwenden unterschiedlicher Dimensionen

Angenommen, Sie möchten Verkaufssummen für jeden Tag des aktuellen Monats nachverfolgen. Sie können ein eindimensionales Array mit 31 Elementen deklarieren, eines für jeden Tag des Monats, wie das folgende Beispiel zeigt.

Dim salesAmounts(30) As Double

Angenommen, Sie möchten die gleichen Informationen nicht nur für jeden Tag eines Monats, sondern auch für jeden Monat des Jahres nachverfolgen. Sie können ein zweidimensionales Array mit 12 Zeilen (für die Monate) und 31 Spalten (für die Tage) deklarieren, wie das folgende Beispiel zeigt.

Dim salesAmounts(11, 30) As Double

Angenommen, Sie entscheiden sich dafür, dass in Ihrem Array Informationen für mehr als ein Jahr aufbewahrt werden sollen. Wenn Sie Verkaufssummen für fünf Jahre nachverfolgen möchten, können Sie ein dreidimensionales Array mit fünf Ebenen, 12 Zeilen und 31 Spalten deklarieren, wie das folgende Beispiel zeigt.

Dim salesAmounts(4, 11, 30) As Double

Da jeder Index von 0 bis zu seinem Maximum variiert, beachten Sie, dass jede Dimension von salesAmounts immer um 1 niedriger als die erforderliche Länge für diese Dimension deklariert wird. Beachten Sie auch, dass die Größe des Arrays bei jeder neuen Dimension zunimmt. Die drei Größen in den vorherigen Beispielen sind 31, 372 und 1.860 Elemente.

Hinweis

Sie können ein Array erstellen, ohne die Dim-Anweisung oder die New-Klausel zu verwenden. Sie können z. B. die CreateInstance-Methode aufrufen, oder eine andere Komponente kann Ihren Code an ein Array übergeben, das auf diese Weise erstellt wurde. Ein solches Array kann eine andere Untergrenze als 0 aufweisen. Sie können immer mithilfe der GetLowerBound-Methode oder der LBound-Funktion auf die untere Grenze einer Dimension testen.

Siehe auch