二维数组

  • 有两个下标的数组称为二维数组。
  • 二维数组的本质上是以数组作为数组元素的数组,即“数组的数组”。

1. 二维数组的定义

数据类型 [ , ]  数组名;

ex:int [,] map;

2. 二维数组初始化

1) 动态初始化

数据类型 [ , ] 数组名 = new 数据类型[第一维长度,第二维长度];

ex: int [,] map = new int [2,3];

数据类型 [ , ] 数组名 = new 数据类型 [ , ]{数组值};

ex: int [,] map = new int [,] {{1,2,3},{4,5,6}};

        int [,] map = new int [2,3] {{1,2,3},{4,5,6}};

2) 静态初始化

数据类型 [ , ] 数组名 = {数组值};

ex:int [,] map = {{7,6,3},{2,8,5}};

第二维的个数必须相同,例如下面的写法会出现编译错误

        int [,] example = {{1,2},{1,2,3}};

 

3. 二维数组的数组元素

1) 二维数组的元素访问

数组名 [第一维下标,第二维下标];

ex: map[2,3];

2) 二维数组的长度

  • 总长度(二维数组的元素个数):array.Length;
  • 第一维的长度array.GetLength(0);
  • 第二维的长度array.GetLength(1);

4. 二维数组的遍历

for(int i = 0; i < array.GetLength(0); i++)
{
    for(int j = 0; j < array.GetLength(1); j++)
    {
        Console.Write(array[i,j]+"\t");
    }
}        

5. foreach迭代遍历

迭代遍历是只读的,不能写入

  • foreach语法:

foreach (迭代类型  迭代变量名  in  迭代集合)

{

        //循环体

}

注:

  1. 迭代类型必须和后面的迭代集合匹配,也可以使用模糊数据类型var。
  2. 迭代集合可以是数组、字符串、集合等。
  3. foreach 消耗的性能要大一些,所以能用 for 就尽量用 for。
  • foreach举例:

ex1:

int[] array1 = {1,2,3,4,5,6};
foreach(int x in ayyar1)
{
    //可以快速遍历一维数组
    Console.Write(x + "\t");
}

ex2:

int[,] array2 = {{1,2,3},{4,5,6}};
foreach(int x in array2)
{
    //也可以快速遍历二维数组
    ConsoleWrite(x + "\t");

    //x++;
    //如果有上面的x++,则会报错,因为foreach是只读的,不可修改
}

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页