数组
目录
C#数组要点:
数组一旦创建,大小就固定了。C#不支持动态数组
数组索引从 0 开始
数组的类型
数组是对象
声明一维数组或矩形数组
实例化一维数组或矩形数组
访问数组元素
初始化数组
显式初始化一维数组
不必输入维度长度,编译器可以通过初始化值得个数来推断长度
显式初始化矩形数组
快捷语法
隐式类型数组
交错数组
交错数组是数组的数组。与矩形数组不同,交错数组的子数组的元素个数可以不同
声明交错数组
交错数组的声明语法要求每一个维度都有一对独立的方括号。数组变量声明中的方括号数据欸的那个了数组的秩
快捷实例化
实例化交错数组
和其他类型不一样,交错数组的完全初始化不能再一个步骤中完成。由于交错数组是独立数组的数组--每一个数组必须独立创建。
1,首先,实例化顶层数组
2,其次,分别实例化每一个子数组,把新建数组的引用赋给它们所属数组的合适数字
交错数组中的子数组
比较矩形数组和交错数组
foreach 语句
foreach 语句允许我们连续访问数组中的每一个元素。
显式 与 隐式 的方法是等价的
迭代变量是只读的
对于值类型数组,在用迭代变量表示数组元素的时候,我们不可以改变它们
对于引用类型数组,我们仍然不能改变迭代变量,但是迭代变量只是保存了数据的引用,而不是数据本身。因此,虽然不能改变引用,但我们可以通过迭代变量改变数据
foreach 语句和多维数组
交错数组与 foreach
一个交错数组是数组的数组,我们必须为交错数组中的每一个维度使用独立的 foreach 语句,foreach 语句必须嵌套以确保每一个嵌套数组都被正确处理
数组协变
在某些情况下,即使某个对象不是数组的基类型,我们也可以把它赋值给数组元素。这种属性叫做数组协变。在下面的情况下可以使用:
值类型数组没有协变
数组继承的有用成员
Clone 方法
比较数组类型