Introduction
Jagged array is an array that may have array with different size.
In C/C++, the jagged array does NOT exist except for pointer, or vector etc STL.
i.e. In C/C++, all elements of an array must have same size.
In C/C++, an array must be declared:
int array[3][3];
In C#, an array can be declared:
int[][] jaggedArray = new int[3][];
Jagged array in C#
Before using jagged array, it must be initialized (if it is declared).
Like this:
int[][] jaggedArray = new int[3][];
Before you can use jaggedArray
, its elements must be initialized. You can initialize the elements like this:
jaggedArray[0] = new int[5];
jaggedArray[1] = new int[4];
jaggedArray[2] = new int[2];
Each of the elements is a single-dimensional array of integers. The first element is an array of 5 integers, the second is an array of 4 integers, and the third is an array of 2 integers.
It is also possible to use initializers to fill the array elements with values, in which case you do not need the array size. For example:
jaggedArray[0] = new int[] { 1, 3, 5, 7, 9 };
jaggedArray[1] = new int[] { 0, 2, 4, 6 };
jaggedArray[2] = new int[] { 11, 22 };
All elements can be placed in the intiailizer. Like this:
int[][] jaggedArray2 = new int[][]
{
new int[] { 1, 3, 5, 7, 9 },
new int[] { 0, 2, 4, 6 },
new int[] { 11, 22 }
};
You can use the following shorthand form. Notice that you cannot omit the new
operator from the elements initialization because there is no default initialization for the elements:
int[][] jaggedArray3 =
{
new int[] { 1, 3, 5, 7, 9 },
new int[] { 0, 2, 4, 6 },
new int[] { 11, 22 }
};
A jagged array is an array of arrays, and therefore its elements are reference types and are initialized to null
.
You can access individual array elements. Like this:
// Assign 77 to the second element ([1]) of the first array ([0]):
jaggedArray3[0][1] = 77;
// Assign 88 to the second element ([1]) of the third array ([2]):
jaggedArray3[2][1] = 88;
It's possible to mix jagged and multidimensional arrays. The following is a declaration and initialization of a single-dimensional jagged array that contains three two-dimensional array elements of different sizes. For more information, see Multidimensional Arrays.
Like this:
int[][,] jaggedArray4 = new int[3][,]
{
new int[,] { {1,3}, {5,7} },
new int[,] { {0,2}, {4,6}, {8,10} },
new int[,] { {11,22}, {99,88}, {0,9} }
};