How to: Initialize a Jagged Array
When you initialize a jagged array variable, you can specify the dimension lengths only for the top-level array. There are several ways you can do this:
To initialize a jagged array variable
In the array variable declaration, specify the top-level index upper bound inside the first pair of parentheses, separated by commas. The following example declares and creates a variable to hold a jagged array of Byte elements, specifying only the top-level upper bound.
Dim rainfall(11)() As Byte
Following the execution of this statement, the array in variable rainfall holds 12 elements, each of which is an empty array of Byte elements.
-or-
In the New clause, specify the top-level index upper bound inside the first pair of parentheses, and supply empty braces ({}). The following example declares and creates a variable to hold a jagged array of Short elements, specifying only the top-level upper bound.
Dim snowfall()() As Short = New Short(11)() {}
Following the execution of this statement, the array in variable snowfall holds 12 elements, each of which is an empty array of Short elements.
Note
You can initialize the top-level index upper bound in only one place. If you specify an upper bound in the parentheses following the array variable name, you cannot use a New clause. If you specify the upper bound in the parentheses in the New clause, you must leave the parentheses following the variable name empty.
-or-
In the New clause, specify the top-level index upper bound inside the parentheses, and supply the element values inside the braces ({}). The following example declares, creates, and initializes a variable to hold a jagged array of Char elements, specifying the top-level upper bound and the values. Note the nested New clauses to initialize the bottom-level arrays.
Dim decodeValues()() As Char = New Char(1)() {New Char() {"a"c, "b"c}, New Char() {"p"c, "q"c}}
Following the execution of this statement, the array in variable decodeValues holds two elements, each of which is a Char array of length 1 with the element at index 0 holding an initialized value. If you supply both the top-level upper bound and the values, you must include a value for every top-level element from index 0 through the upper bound.
-or-
In the New clause, omit the top-level parentheses and supply the element values inside the braces ({}). The following example declares, creates, and initializes a variable to hold a jagged array of Byte elements, specifying only the element values. Note the two levels of braces in the New clause.
Dim firstValues()() As Byte = {New Byte() {2, 1}, New Byte() {3, 0}}
Following the execution of this statement, the array in variable firstValues has length 2, with elements firstValues(0) and firstValues(1). Each of the elements is initialized to a two-element Byte array, the first with element values 2 and 1 and the second with element values 3 and 0.
See Also
Tasks
How to: Declare an Array Variable
How to: Create an Array of Arrays
How to: Initialize an Array Variable
How to: Initialize a Multidimensional Array