共用方式為


Visual Basic 中的陣列維度

維度是您可以改變陣列元素屬性的方向。 陣列儲存當月每一天的銷售總計,有一個維度(一維,以當月的日為標記)。 一個陣列用來記錄每個部門在當月每日的銷售總額,該陣列具有兩個維度(部門編號和當月的日期)。 陣列所擁有的維度數目稱為其 順位

備註

您可以使用 Rank 屬性來判斷陣列擁有多少個維度。

使用維度

您可以為每個維度提供 索引下標,以指定陣列的一個元素。 元素會沿著每個維度連續,從索引 0 到該維度的最高索引。

下圖顯示具有不同順位之陣列的概念結構。 圖例中的每個元素都會顯示存取它的索引值。 例如,您可以藉由指定索引 (1, 0) 來存取二維陣列第二列的第一個元素。

顯示一維陣列的圖表。

顯示二維陣列的圖表。

顯示三維陣列的圖表。

一個維度

許多陣列只有一個維度,例如每個年齡的人數。 指定一個元素的唯一要求是該元素所代表的年齡。 因此,這類陣列只會使用一個索引。 下列範例會宣告變數,以保存 0 到 120 歲年齡計數的 一維數位列

Dim ageCounts(120) As UInteger

兩個維度

有些陣列有兩個維度,例如校園內每棟建築物每個樓層的辦公室數目。 元素的規格需要建築物編號和樓層,而每個元素都會保留該建築和樓層組合的計數。 因此,這類陣列會使用兩個索引。 下列範例會宣告變數來保存辦公室計數的 二維數位列 ,適用於 0 到 40 層和 0 到 5 層的建築物。

Dim officeCounts(40, 5) As Byte

二維陣列也稱為 矩形陣列

三維

一些陣列有三個維度,例如三維空間中的值。 這類陣列會使用三個索引,在此案例中代表實體空間的 x、y 和 z 座標。 下列範例會宣告變數,以在三維空間的各種點儲存三維氣溫陣列。

Dim airTemperatures(99, 99, 24) As Single

三個以上的維度

雖然陣列可以有多達32個維度,但很少有三個以上的維度。

備註

當您將維度新增至數位時,陣列所需的總記憶體會大幅增加,因此請小心使用多維度陣列。

使用不同的維度

假設您想要追蹤本月每天的銷售金額。 您可以宣告具有 31 個元素的一維陣列,一個用於當月的每一天,如下列範例所示。

Dim salesAmounts(30) As Double

現在,假設您想要追蹤相同的信息,不僅要追蹤一個月的每一天,也追蹤一年中的每個月。 您可以宣告具有12個數據列的二維陣列(針對月份)和31個數據行(天數),如下列範例所示。

Dim salesAmounts(11, 30) As Double

現在假設您決定讓陣列保留信息超過一年。 如果您想要追蹤 5 年的銷售額,您可以宣告具有 5 個圖層、12 個數據列和 31 個數據行的三維數位列,如下列範例所示。

Dim salesAmounts(4, 11, 30) As Double

請注意,由於每個索引會從 0 到最大值而有所不同,因此的每個維度 salesAmounts 都會宣告為小於該維度所需長度的一個。 另請注意,陣列的大小會隨著每個新維度而增加。 上述範例中的三個大小分別為 31、372 和 1,860 個元素。

備註

您可以建立陣列,而不使用 Dim 語句或 New 子句。 例如,您可以呼叫 CreateInstance 方法,或者另一個元件可以傳遞以這種方式建立的陣列到您的程式碼。 這類陣列可以有 0 以外的下限。 您一律可以使用 GetLowerBound 方法或 LBound 函式來測試維度的下限。

另請參閱