8.3. Multidimensional Arrays
So far I've discussed one-dimensional arrays, which are great for describing lists of data. However, data are often organized in tables of rows and columns. For example, you might want to see the distribution of grades in a class where the columns represent the student's class and the rows represent the grades, as shown in Table 8-2.
Grades | Freshmen | Sophomores | Juniors | Seniors |
---|---|---|---|---|
A | 1 | 4 | 6 | 5 |
B | 4 | 7 | 11 | 4 |
C | 11 | 13 | 11 | 3 |
D | 3 | 4 | 3 | 1 |
F | 2 | 1 | 0 | 0 |
If you wanted to define an array for storing the data shown in Table 8-2, you might use the following code:
int[,] grades = new int[5, 4];
This definition states that you want to define a table, or matrix, with five rows and four columns. Note the comma within the brackets in the definition. The first comma in the brackets on the left side of the assignment expression simply tells C# that you are about to define a two-dimensional array. The second set of brackets specifies exactly how many elements there are in the table. Because there are two dimensions, you say the grades array has a rank of two. That is, the term rank refers to the number of dimensions associated with the array.
You can use more than two dimensions if you need them. For example, 3D graphics are drawn using X, Y, and Z coordinates. To define an array with three dimensions, you might use this code:
int[,,] images = new int[20, 100, 200];
This defines a data cube rather than a table or list. Note that if you want N dimensions (such as three), there are always N − 1 ...
Get Beginning C# 3.0 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.