方法 : ジャグ配列を初期化する
更新 : 2007 年 11 月
ジャグ配列変数を初期化するときには、トップレベルの配列に対してだけ次元の長さを指定できます。これにはいくつかの方法があります。
ジャグ配列変数を初期化するには
配列変数の宣言で、最初のかっこのペア内に、コンマで区切ってトップレベル インデックスの上限を指定します。Byte 型の要素のジャグ配列を保持するための変数を、トップレベルの上限だけを指定して宣言および作成する例を次に示します。
Dim rainfall(11)() As Byte
このステートメントを実行すると、rainfall 変数内の配列の要素数が 12 個になります。各要素には、Byte 型の要素を持つ空の配列がそれぞれ格納されます。
または
New 句で、最初のかっこのペア内でトップレベル インデックスの上限を指定し、空の中かっこ ({}) を付けます。Short 型の要素のジャグ配列を保持するための変数を、トップレベルの上限だけを指定して宣言および作成する例を次に示します。
Dim snowfall()() As Short = New Short(11)() {}
このステートメントを実行すると、snowfall 変数内の配列の要素数が 12 個になります。各要素には、Short 型の要素を持つ空の配列がそれぞれ格納されます。
メモ : トップレベルのインデックスの上限は、1 か所でだけ初期化できます。配列変数名の後のかっこ内で上限を指定する場合、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 変数の配列の要素数が 2 個になります。各要素には長さが 1 の Char 配列がそれぞれ格納されます。また、それらの配列のインデックス 0 の要素にはそれぞれ初期値が設定されます。トップレベルで上限と値の両方を指定する場合は、インデックス 0 ~上限までの、すべてのトップレベル要素の値を指定する必要があります。
または
New 句で、トップレベルのかっこを省略し、中かっこ ({}) の中に要素の値を指定します。Byte 型の要素のジャグ配列を保持するための変数を、要素の値だけを指定して宣言、作成、および初期化する例を次に示します。New 句に 2 つのレベルの中かっこがあることに注意してください。
Dim firstValues()() As Byte = {New Byte() {2, 1}, New Byte() {3, 0}}
このステートメントを実行すると、firstValues 変数の配列の長さが 2 になり、firstValues(0) 要素および firstValues(1) 要素ができます。各要素は 2 つの要素を持つ Byte 配列として初期化されます。その 1 番目の配列に含まれる要素の値は 2 と 1 であり、2 番目の配列に含まれる要素の値は 3 と 0 です。