I always liked the concept of arrays. Being able to conceptually visualize in multiple dimensions took me some time to get my mind around, but in the end I was successful. The example here will discuss 2 dimensional arrays of type single, multiple and jagged.
A single dimensional array is the simplest. You simply code an object 1 column by (n) rows. Like this image and code represent:
int singleDimensionalArray = new int;
The single dimension array is of type integer with a single column and  rows defined. Take note that the numbering of arrays always starts with 0 and not with one. If you wanted to access the value stored in the first row you would use;
int firstRow = singleDimensionalArray;
And this code:
int[,] multiDimensionalArray = new int[2, 2];
Again, I coded this one of type integer with a structure of 2 by 2, I.e. [2, 2]. This means I have a table 2 columns wide by 2 rows deep. If you needed to access the value (210) stored in [1, 0] the following would provide it:
int multValue = multiDimensionalArray[1, 0]
The final type of array discussed here is called a Jagged array. This array allows you to have arrays embedded within arrays of different length of a single type.
int jaggedArray = new int; jaggedArray = new int; jaggedArray = new int;
To access the value 501 stored at location  you would used this code:
int jaggedValue = jaggedArray;
Download the source here.