ジャグ配列の場合でも配列初期化子を使って初期化することができます。 配列初期化子を使って初期化する場合、多次元配列の場合と同様の記述ができますが、1段目はnewを省略して記述できるのに対し、2段目以降はnewを省略して記述することはできないという点に注意が必要です。

次の例では、1段目の長さが3、2段目の長さが各々3, 2, 4の計9個の要素を持つ2段のジャグ配列を作成すると同時に初期化を行っています。

このコードで作成・初期化される2段のジャグ配列を図式化すると次のようになります。

初期化後に2段のジャグ配列へ格納される値のイメージ
jagged[0] → 012
jagged[1] → 34
jagged[2] → 5678

3段以上のジャグ配列も同様にして初期化することができます。 配列の中に配列を含めるよう入れ子に記述していくことで多段のジャグ配列を初期化できます。

配列初期化子を使って3段ジャグ配列を初期化する
Imports System

Class Sample
  Shared Sub Main()
    ' 3段のジャグ配列
    Dim doubleNested()()() As Integer = { _
      New Integer()() { _
        New Integer() {0, 1, 2}, _
        New Integer() {3, 4}, _
        New Integer() {5, 6, 7, 8} _
      }, _
      New Integer()() { _
        New Integer() {9, 10}, _
        New Integer() {11, 12, 13, 14} _
      }, _
      New Integer()() { _
        New Integer() {15, 16, 17}, _
        New Integer() {18}, _
        New Integer() {19, 20}, _
        New Integer() {21, 22} _
      } _
    }

    Console.WriteLine("doubleNested(0)(0)(0) = {0}", doubleNested(0)(0)(0))
    Console.WriteLine("doubleNested(0)(2)(3) = {0}", doubleNested(0)(2)(3))
    Console.WriteLine("doubleNested(1)(0)(0) = {0}", doubleNested(1)(0)(0))
    Console.WriteLine("doubleNested(2)(3)(1) = {0}", doubleNested(2)(3)(1))
  End Sub
End Class
実行結果
doubleNested[0][0][0] = 0
doubleNested[0][2][3] = 8
doubleNested[1][0][0] = 9
doubleNested[2][3][1] = 22