数组及相关基础
什么是数组
数组是一系列相同类型元素的集合,一组数字的数组语法如下:
1 | int[] id = new int[10]; |
关键字new
的应用是为了根据所给的大小,去分配记忆空间。而一旦数组已经声明了长度,之后就无法被改变,所以在声明数组的时候就应当合理分配其长度。
更多关于数组的资料,可以参考微软的c# array官方文献。
案例:数组中数据的存入和获取
这个Demo展示了:
如何声明和初始化一个数组
使用索引获取数据
步骤:
- 打开在之前的文章中之前创建的
MyFirstProject
,并且将以下的代码替换之前在Program.cs
中的代码,下列代码将会展示如何声明和初始化数组元素。
1 | // 声明一个数组 |
新增以下代码去获取数组元素。
1
2
3
4
5
6// 打印数组元素
Console.WriteLine("数组中的元素为:");
for (int i = 0; i < id.Length; i++)
{
Console.Write(id[i]+"\t");
}查看输出结果
数组中的元素为:
1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 Press any key to continue . . .
- 将以下代码加入
Program.cs
中,并查看数出结果:
1 | id[10]=1011; |
输出结果为:
数组中的元素为:
1001 1002 1003 1004 1005 1006 1007 1008 1009 1010
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at MyFirstProject.Program.Main(String[] args) in MyFirstProject\MyFirstProject\Program.cs:line 25
原因是因为,数组的长度是固定的,而且数组的长度一但被声明,就无法被改变。id
的长度是10,当id[10]=1011;
这行代码尝试将新的id加入到数组的第11位的时候(数组的索引从0开始),就会报IndexOutOfRangeException
的错。
Foreach循环
除了在C#3 - 流程控制遍历方式之外,C#也另外提供了一种不需要额外的变量去保存索引就能够遍历所有元素的方式。
以下代码就利用了foreach
进行数组的遍历。
1 | using System; |
多维数组
最简单的多维数组自然就是一个二维数组。一个二维数组就是一个关于一维数组的数组。
以下代码声明并遍历了一个二维数组:
1 | using System; |
最后输出结果为:
1 2 3
4 5 6
7 8 9
C#中对数组的声明可以像Java一样使用int[][] array...
这样声明,也可以像Demo中一样。
最后关于length
如果在Program.cs
中加入以下两行代码:
1 | Console.WriteLine(twoD.Length); |
输出的结果并不会是:
3
2
正确的输出结果是:
9
12
和其他的语言不一样的是,数组的length
最后传回来的是数组中所有元素的和,而非单一行的长度。