Jagged Arrays in Visual Basic
An array of which each element is itself an array is called an array of arrays, or a jagged array. Note that having arrays as elements is not the same thing as a multidimensional array, which has more than one index on a single array.
Meaning of Jagged
Sometimes the data structure in your application is two-dimensional but not rectangular. For example, you might have an array of months, each element of which is an array of days. Since different months have different numbers of days, the elements do not form a rectangular two-dimensional array. In such a case, you can use a jagged array instead of a multidimensional array.
Example
The following example declares an array variable to hold an array of arrays with elements of the Double Data Type (Visual Basic). Each element of the array sales is itself an array that represents a month. Each month array holds values for each day in that month.
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
The New clause in the declaration of sales sets the array variable to a 12-element array, each element of which is of type Double(), an array of Double elements. The For loop then determines how many days are in each month this year (Year(Now)), and sets the corresponding element of sales to a Double array of the appropriate size.
In the previous example, the jagged array saves seven elements (six in a leap year) as compared to a two-dimensional array. In a more extreme case the memory savings could be significant.
See Also
Tasks
How to: Declare an Array Variable
How to: Create an Array of Arrays
How to: Initialize a Jagged Array
Concepts
Overview of Arrays in Visual Basic
Array Dimensions in Visual Basic
Multidimensional Arrays in Visual Basic
Array Data Types in Visual Basic