写点什么

C#入门系列 (十) -- 一维数组

作者:陈言必行
  • 2022 年 6 月 10 日
  • 本文字数:1688 字

    阅读完需:约 6 分钟

一维数组定义

几个 C#中与数组相关的重要定义:


  1. 元素:数组的独立数据项被称作元素。数组的所有元素必须是相同类型的,或继承自相同类型;

  2. 秩/维度:数组可以有任何为正数的维度数。数组的维度就是秩(rank);

  3. 维度长度:数组的每个维度都有一个长度,就是这个方向的位置个数,称为维度长度;

  4. 数组长度:数组中所有维度中元素的总和称为数组的长度。


数组类型表示一组数据的集合,使用数组可以方便的定义一个名字(数组名)来表示大批量的数据(数组元素),同时数组支持通过循环结构实现批处理大量的数据。


C#中,数组(Array)是一种包含若干变量的数据结构,这些变量都可以通过计算索引进行访问。


数组中包含的变量,又称数组的元素(Element)具有相同的类型,该类型称为数组的元素类型(Element Type)。


数组类型为引用类型,数组名为实际的数组引用留出空间。


定义格式如下:


数组类型[] 数组名 = new 元素类型[数组长度];
复制代码


或者分为两步:先定义,使用时初始化


数组类型[] 数组名;数组名 = new 元素类型[数组长度];
复制代码


其中,new 运算符用来创建数组实例,在内存中为数组申请空间。


一维数组的定义说明:


  • 数组名必须符合 C#中标识符的命名规则;

  • 一维数组是由元素类型、数组名和长度组成的构造类型。元素类型指示存放在数组中元素是什么类型,C#中数组元素的类型可以是值类型或引用类型;

  • 数组长度必须大于等于 1,表示数组中元素的个数。数组在创建之前,数组长度必须已知,并且数组一旦被创建,其大小就固定了。<font color = red>C#不支持动态数组。</font>

  • 数组的索引号从 0 开始,即如果维度长度为 n,索引号范围就是 0~n-1。



一维数组初始化

当数组被创建之后,每一个元素被自动初始化为元素类型的默认值。


对于预定义的类型,整型默认值为 0,浮点型默认值为 0.0,布尔型默认值为 false,而引用类型的默认值为 null。


C#支持对数组的显式初始化,即在创建数组时包括初始化。列表来设置显式表达式。一般形式如下:


数组类型[] 数组名 = new 数组类型[数组长度]{与长度相等个数的元素列表};
复制代码


比如:


int[] arr = new int[3]{1, 2, 3};
复制代码


当初始化时,初值的个数一定要与数组大小相等,否则会出现编译错误。比如:下面这样是不允许的


// 错误 ❎ 示例int[] arr = new int[3]{1, 2};
复制代码


若需要维度可选的则可以这样写:


数组类型[] 数组名 = new 数组类型[]{元素列表};
int[] arr = new int[]{1, 2, 3, 4};
复制代码



一维数组使用

数组必须先定义后使用,且只能逐个引用数组元素的值,不能一次性引用整个数组。


数组元素引用是通过下标得到的,一般形式为:


数组名 [下标索引]
复制代码


比如:


int[] arr = int[3]{1,2,3};int a = arr[1]; // 索引是1取到的值是2
复制代码


使用下标索引时需注意:


  • 数组元素的下标从 0 开始,与其内存形式对应。

  • 下标表达式可以为常量、常量表达式、变量及变量表达式,但必须为整数,并且不能是负数。

  • 元素的下标值不能超过数组的长度,否则会导致数组下标越界的错误。

  • 数组不允许以整体形式进行算术运算等,但是 C#支持数组的整体赋值。



一维数组遍历

数组遍历:指将数组中挨个访问元素所有元素。

for 循环

最简单最常用的 for 循环实现


int[] arr = new int[] { 1, 2, 3, 4, 5 };
for (int i = 0; i < arr.Length; i++){ Console.WriteLine(arr[i]);}
复制代码

foreach

foreach 语句用于枚举一个集合的元素。


foreach 语句的语法


foreach(数据类型 变量 in 数组名){  语句}
复制代码


  • foreach 实现:


int[] arr = new int[] { 1, 2, 3, 4, 5 }; 
foreach (var item in arr){ Console.WriteLine(item);}
复制代码


foreach 使用注意事项:


  1. foreach 中数据类型和变量组成一个临时迭代变量声明。foreach 语句使用迭代变量来连续表示数组中的每一个元素;

  2. 对临时迭代变量的声明,其数据类型可以显式地声明为数组中元素的类型,也可以使用 var 关键字来隐式提供它的类型,然后由编译器根据数组的类型推断临时迭代变量的类型;

  3. 迭代变量是只读的,不能被修改。对于值类型的数组不能改变数组的数据;对于引用类型的数组不能改变实际数据的引用,但是实际数据有可能通过迭代变量被修改;

  4. 使用 foreach 遍历数组时,不需要设置循环条件,数组遍历更简单快捷,也更安全,尤其对于多维矩形数组的遍历,只需一个 foreach 语句即可实现。

发布于: 刚刚阅读数: 4
用户头像

陈言必行

关注

公号:开发同学留步 2019.03.12 加入

我是一个从事Unity游戏开发攻城狮,6年开发经验,助你日常不加班。

评论

发布
暂无评论
C#入门系列(十) -- 一维数组_C#_陈言必行_InfoQ写作社区