C# 多维数组
多维数组是使用多个索引访问其元素的数组。例如,假定要确定一座山相对于某位置的高度,可使用两个坐标x和y来指定一个位置。把这两个坐标用作索引,让数组hiUHeight可以用每对坐标来存储高度,这就要使用多维数组了。
像这样的二维数组可以声明如下:
<baseType>[,] <name>;
多维数组只需要更多逗号,例如:
<baseType>[,,,] <name>;
该语句声明了一个4维数组。赋值也使用类似的语法,用逗号分隔大小。要声明和初始化二维数组hillHeight,其基本类型是double, x的大小是3, y的大小是4,则需要:
double[,] hillHeight = new double[3,4];
还可以使用字面值进行初始赋值。这里使用嵌套的花括号块,它们之间用逗号分开,例如:
double[,] hillHeight = { { 1, 2, 3, 4 }, { 2, 3, 4, 5 }, { 3, 4, 5, 6 } };
这个数组的维度与前面的相同,也是3行4列。通过提供字面值隐式定义了这些维度。
要访问多维数组中的每个元素,只需要指定它们的索引,并用逗号分开,例如:
hillHeight[2,1]
接着就可以像处理其他元素那样处理它了。这个表达式将访问上面定义的第3个嵌套数组中的第2个元素 (其值是4)。记住,索引从0开始,第一个数字是嵌套的数组。换言之,第一个数字指定花括号对,第2个数字指定该对花括号中的元素。用图来可视化地表示这个数组。
hillHeight [0,0] |
| hillHeight [0,1] | hillHeight [0,2] | hillHeight [0,3] | ||||
1 | 2 | 3 | 4 | |||||
hillHeight [1,0] | hillHeight [1,1] | hillHeight [1.2] | hillHeight (1,3] | |||||
2 | 3 | 4 | 5 | |||||
hillHeight (2,0] | hillHeight [2,1] | hillHeight [2,2] | hillHeight [2,3] | |||||
3 | 4 | 5 | 6 |
foreach循环可以访问多维数组中的所有元素,其方式与访问一维数组相同,例如:
double[,] hillHeight = { { 1, 2, 3, 4 }, { 2, 3, 4, 5 }, { 3, 4, 5, 6 ));
foreach (double height in hillHeight)
{
WriteLine($"{height}");
}
元素的输出顺序与赋予字面值的顺序相同(这里显示了元素的标识符而非实际值):
hillHeight[0,0]
hillHeight[0,l]
hillHeight[0,2]
hillHeight[0,3]
hillHeight[1,0]
hillHeight[1,1]
hillHeight[1,2]
...
点击加载更多评论>>