5 out of 12 rated this helpful - Rate this topic

Multidimensional Arrays (C# Programming Guide)

Arrays can have more than one dimension. For example, the following declaration creates a two-dimensional array of four rows and two columns.


int[,] array = new int[4, 2];


The following declaration creates an array of three dimensions, 4, 2, and 3.


int[, ,] array1 = new int[4, 2, 3];


You can initialize the array upon declaration, as is shown in the following example.


// Two-dimensional array.
int[,] array2D = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// The same array with dimensions specified.
int[,] array2Da = new int[4, 2] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };
// A similar array with string elements.
string[,] array2Db = new string[3, 2] { { "one", "two" }, { "three", "four" },
                                        { "five", "six" } };

// Three-dimensional array.
int[, ,] array3D = new int[,,] { { { 1, 2, 3 }, { 4, 5, 6 } }, 
                                 { { 7, 8, 9 }, { 10, 11, 12 } } };
// The same array with dimensions specified.
int[, ,] array3Da = new int[2, 2, 3] { { { 1, 2, 3 }, { 4, 5, 6 } }, 
                                       { { 7, 8, 9 }, { 10, 11, 12 } } };

// Accessing array elements.
System.Console.WriteLine(array2D[0, 0]);
System.Console.WriteLine(array2D[0, 1]);
System.Console.WriteLine(array2D[1, 0]);
System.Console.WriteLine(array2D[1, 1]);
System.Console.WriteLine(array2D[3, 0]);
System.Console.WriteLine(array2Db[1, 0]);
System.Console.WriteLine(array3Da[1, 0, 1]);
System.Console.WriteLine(array3D[1, 1, 2]);

// Output:
// 1
// 2
// 3
// 4
// 7
// three
// 8
// 12


You also can initialize the array without specifying the rank.


int[,] array4 = { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };


If you choose to declare an array variable without initialization, you must use the new operator to assign an array to the variable. The use of new is shown in the following example.


int[,] array5;
array5 = new int[,] { { 1, 2 }, { 3, 4 }, { 5, 6 }, { 7, 8 } };   // OK
//array5 = {{1,2}, {3,4}, {5,6}, {7,8}};   // Error


The following example assigns a value to a particular array element.


array5[2, 1] = 25;


Similarly, the following example gets the value of a particular array element and assigns it to variable elementValue.


int elementValue = array5[2, 1];


The following code example initializes the array elements to default values (except for jagged arrays).


int[,] array6 = new int[10, 10];


Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Arrays of Structures: can they be initialized?

Created structure

struct CS {

int a;

DateTime b;

double c;

}


CS[] = new CS[] {{1,"2 September","3.5} ,.....]


How is this done?


Edit by SJ at MSFT: Hi Ashley. If you have a constructor in the struct, you can say, for example (using a struct from this topic: http://msdn.microsoft.com/en-us/library/0taef578.aspx ):

CoOrds[] coOrdArray = { new CoOrds(5, 6), new CoOrds(1, 8) };

foreach (var c in coOrdArray)
Console.WriteLine(c.x);


And, in general, when you have a specific question like this, you will get a quicker response if you post it in the forums, http://social.msdn.microsoft.com/Forums/en-US/category/visualcsharp.

Advertisement