Visual Basic 中的不規則陣列

更新:2007 年 11 月

當陣列的每個元素本身都是陣列時,稱為「陣列的陣列」或「不規則」陣列。請注意,將陣列當做元素和當做「多維」陣列不同,因為以多維陣列來說,在單一陣列中可能有一個以上的索引。

不規則陣列的意義

有時候應用程式中的資料結構會是非矩形的二維陣列。例如,您可能有一個月份陣列,而該陣列的每個元素則是日期陣列。由於不同月份的天數也不同,因此這些元素不會形成矩形的二維陣列。在這種情況下,您可以使用不規則陣列替代多維陣列。

範例

下列範例是一個含有「陣列的陣列」的陣列變數宣告,該陣列含有 Double 資料型別 (Visual Basic) 元素。陣列 sales 的每個元素本身都是一個陣列,表示一個月份。每個月份陣列含有該月份每天的值。

Dim sales()() As Double = New Double(11)() {}
Dim month As Integer
Dim days As Integer
For month = 0 To 11 
    days = DateTime.DaysInMonth(Year(Now), month + 1)
    sales(month) = New Double(days - 1) {}
Next month

sales 宣告中的 New 子句會將陣列變數設定為具有 12 個元素的陣列,其中每個元素的型別都是 Double(),即 Double 元素陣列。接著 For 迴圈 (Loop) 會判斷今年 (Year(Now)) 的每個月份有幾天,然後將 sales 的對應元素設定為適當大小的 Double 陣列。

在上述範例中,與二維陣列比較起來,不規則陣列會儲存七個元素 (閏年為六個元素)。在較為極端的情況中,可節省可觀的記憶體。

請參閱

工作

HOW TO:宣告陣列變數

HOW TO:建立陣列的陣列

HOW TO:初始化不規則陣列

陣列疑難排解

概念

Visual Basic 中的陣列概觀

Visual Basic 中的陣列維度

Visual Basic 中的多維陣列

Visual Basic 中的陣列資料型別

撰寫符合 CLS 標準的程式碼

其他資源

Visual Basic 中的陣列