C#入门系列 (十) -- 一维数组
一维数组定义
几个 C#中与数组相关的重要定义:
元素:数组的独立数据项被称作元素。数组的所有元素必须是相同类型的,或继承自相同类型;
秩/维度:数组可以有任何为正数的维度数。数组的维度就是秩(rank);
维度长度:数组的每个维度都有一个长度,就是这个方向的位置个数,称为维度长度;
数组长度:数组中所有维度中元素的总和称为数组的长度。
数组类型表示一组数据的集合,使用数组可以方便的定义一个名字(数组名)来表示大批量的数据(数组元素),同时数组支持通过循环结构实现批处理大量的数据。
C#中,数组(Array)是一种包含若干变量的数据结构,这些变量都可以通过计算索引进行访问。
数组中包含的变量,又称数组的元素(Element)具有相同的类型,该类型称为数组的元素类型(Element Type)。
数组类型为引用类型,数组名为实际的数组引用留出空间。
定义格式如下:
或者分为两步:先定义,使用时初始化
其中,new 运算符用来创建数组实例,在内存中为数组申请空间。
一维数组的定义说明:
数组名必须符合 C#中标识符的命名规则;
一维数组是由元素类型、数组名和长度组成的构造类型。元素类型指示存放在数组中元素是什么类型,C#中数组元素的类型可以是值类型或引用类型;
数组长度必须大于等于 1,表示数组中元素的个数。数组在创建之前,数组长度必须已知,并且数组一旦被创建,其大小就固定了。<font color = red>C#不支持动态数组。</font>
数组的索引号从 0 开始,即如果维度长度为 n,索引号范围就是 0~n-1。
一维数组初始化
当数组被创建之后,每一个元素被自动初始化为元素类型的默认值。
对于预定义的类型,整型默认值为 0,浮点型默认值为 0.0,布尔型默认值为 false,而引用类型的默认值为 null。
C#支持对数组的显式初始化,即在创建数组时包括初始化。列表来设置显式表达式。一般形式如下:
比如:
当初始化时,初值的个数一定要与数组大小相等,否则会出现编译错误。比如:下面这样是不允许的
若需要维度可选的则可以这样写:
一维数组使用
数组必须先定义后使用,且只能逐个引用数组元素的值,不能一次性引用整个数组。
数组元素引用是通过下标得到的,一般形式为:
比如:
使用下标索引时需注意:
数组元素的下标从 0 开始,与其内存形式对应。
下标表达式可以为常量、常量表达式、变量及变量表达式,但必须为整数,并且不能是负数。
元素的下标值不能超过数组的长度,否则会导致数组下标越界的错误。
数组不允许以整体形式进行算术运算等,但是 C#支持数组的整体赋值。
一维数组遍历
数组遍历:指将数组中挨个访问元素所有元素。
for 循环
最简单最常用的 for 循环实现
foreach
foreach 语句用于枚举一个集合的元素。
foreach 语句的语法
foreach 实现:
foreach 使用注意事项:
foreach 中数据类型和变量组成一个临时迭代变量声明。foreach 语句使用迭代变量来连续表示数组中的每一个元素;
对临时迭代变量的声明,其数据类型可以显式地声明为数组中元素的类型,也可以使用 var 关键字来隐式提供它的类型,然后由编译器根据数组的类型推断临时迭代变量的类型;
迭代变量是只读的,不能被修改。对于值类型的数组不能改变数组的数据;对于引用类型的数组不能改变实际数据的引用,但是实际数据有可能通过迭代变量被修改;
使用 foreach 遍历数组时,不需要设置循环条件,数组遍历更简单快捷,也更安全,尤其对于多维矩形数组的遍历,只需一个 foreach 语句即可实现。
版权声明: 本文为 InfoQ 作者【陈言必行】的原创文章。
原文链接:【http://xie.infoq.cn/article/52c3daed76239a17fcf24263e】。未经作者许可,禁止转载。
评论