HOW TO:初始化不規則陣列
更新:2007 年 11 月
當您初始化不規則的陣列變數時,可以只指定最上層陣列的維度長度。初始化的方法有很多種:
若要初始化不規則陣列 (Jagged Array) 變數
在陣列變數宣告中,指定第一對括弧中以逗號分隔的最上層索引上限 (Upper Bound)。下列範例會宣告並建立變數,以保留 Byte 元素的不規則陣列,並且只會指定最上層上限。
Dim rainfall(11)() As Byte
執行此陳述式後,rainfall 變數中的陣列會保留 12 個元素,每個都是由 Byte 元素組成的空白陣列。
-或-
在 New 子句中,指定第一對括弧中的最上層索引上限,並提供空白括號 ({})。下列範例會宣告並建立變數,以保留 Short 元素的不規則陣列,並且只指定最上層上限。
Dim snowfall()() As Short = New Short(11)() {}
執行此陳述式後,snowfall 變數中的陣列會保留 12 個元素,每個都是由 Short 元素組成的空白陣列。
注意事項: 只有一個位置可以初始化最上層索引上限。如果要在陣列變數名稱後的括弧中指定上限,則無法使用 New 子句。如果要在 New 子句中的括弧內指定上限,則括弧後面必須是空白的變數名稱。
-或-
在 New 子句中,指定括弧內最上層索引上限,然後在括號 ({}) 內提供元素值。下列範例會宣告、建立並初始化變數,以保留 Char 元素的不規則陣列,並指定最上層上限及值。請注意,巢狀 New 子句會初始化最下層陣列。
Dim decodeValues()() As Char = New Char(1)() {New Char() {"a"c, "b"c}, New Char() {"p"c, "q"c}}
執行此陳述式後,變數 decodeValues 中的陣列會保留兩個元素,每個都是長度為 1 的 Char 陣列,且其元素的索引為 0,並保留初始化的值。如果您要提供最上層上限及值,則必須包含從索引 0 到上限的每個最上層元素的值。
-或-
在 New 子句中,省略最上層括弧,並在括號 ({}) 內提供元素值。下列範例會宣告、建立並初始化變數,以保留 Byte 元素的不規則陣列,並且只指定元素值。請注意 New 子句中的雙層括號。
Dim firstValues()() As Byte = {New Byte() {2, 1}, New Byte() {3, 0}}
執行這個陳述式後,變數 firstValues 中的陣列長度為 2,並具有元素 firstValues(0) 及 firstValues(1)。每個元素都初始化為含有兩個元素的 Byte 陣列,第一個元素值為 2 和 1,第二個元素值為 3 和 0。