Array Dimensions in 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
的每個維度會宣告為比該維度所需長度小 1。 另請注意,陣列的大小會隨著每個新維度而增加。 上述範例中的三個大小分別是 31、372 和 1,860 個元素。
注意
不使用 Dim
陳述式或 New
子句也可以建立陣列。 例如,您可以呼叫 CreateInstance 方法,或者另一個元件可以傳遞陣列以這種方式為您建立的程式碼。 這類陣列可以有 0 以外的下限。 您一律可以使用 GetLowerBound 方法或 LBound
函式,來測試維度的下限。