C# Multidimensional Arrays
C# supports multidimensional arrays, which are also known as rectangular arrays.
You can declare a two-dimensional array of string
variables like this:
string[,] names;
Or, you can declare a three-dimensional array of int
variables like this:
int[,,] m;
Two-Dimensional Arrays
The simplest form of a multidimensional array is a two-dimensional array. Essentially, a two-dimensional array is a list of one-dimensional arrays.
A two-dimensional array can be thought of as a table with x rows and y columns. Here is a two-dimensional array with 3 rows and 4 columns:
Each element in the array is identified by an element name of the form a[i, j], where a
is the array name, and i
and j
are the indices that uniquely identify each element in a
.
Initializing a Two-Dimensional Array
A multidimensional array can be initialized by specifying values within brackets for each row. Here is an array with 3 rows and 4 columns:
int[,] a = new int[3,4] {
{0, 1, 2, 3} , /* initializing row indexed at 0 */
{4, 5, 6, 7} , /* initializing row indexed at 1 */
{8, 9, 10, 11} /* initializing row indexed at 2 */
};
Accessing Two-Dimensional Array Elements
Elements in a two-dimensional array are accessed using the row index and column index. For example:
int val = a[2,3];
The above statement will take the element from the 3rd row and 4th column of the array. You can verify this with the diagram provided. Let's look at the following program, which processes a two-dimensional array using nested loops:
Example
using System;
namespace ArrayApplication
{
class MyArray
{
static void Main(string[] args)
{
/* an array with 5 rows and 2 columns */
int[,] a = new int[5, 2] {{0,0}, {1,2}, {2,4}, {3,6}, {4,8} };
int i, j;
/* output each array element's value */
for (i = 0; i < 5; i++)
{
for (j = 0; j < 2; j++)
{
Console.WriteLine("a[{0},{1}] = {2}", i, j, a[i,j]);
}
}
Console.ReadKey();
}
}
}
When the above code is compiled and executed, it produces the following result:
a[0,0]: 0
a[0,1]: 0
a[1,0]: 1
a[1,1]: 2
a[2,0]: 2
a[2,1]: 4
a[3,0]: 3
a[3,1]: 6
a[4,0]: 4
a[4,1]: 8