zl程序教程

您现在的位置是:首页 >  Javascript

当前栏目

C#中的数组

2023-04-18 16:13:01 时间

一.数组简介

数组是一种数据结构,它包含若干相同类型的变量。数组是使用类型声明的: 数组具有以下属性:

  1. 数组从字面上理解就是存放一组数,但在 C# 语言中数组存放的并不一定是 数字,也可以是其他数据类型。
  2. 一个变量只能存放一个值,如果需要计算 10 个变量中的最大值,则需要定 义 10 个变 量,非常麻烦。
  3. 数组的索引从零开始:具有 n 个元素的数组的索引是从 0 到 n-1。
  4. 数组元素可以是任何类型,包括数组类型。
  5. 在一个数组中存放的值都是同一数据类型的,并且可以通过循环以及数据操 作的方法对数组的值进行运算或操作。

声明数组时,方括号 [] 必须跟在类型后面,而不是标识符后面,在 C# 中,将方括 号放在标识符后是不合法的语法。

另一细节是,数组的大小不是其类型的一部分,您可以声明一个数组并向它分配 int 对象的任意数组,而不管数组长度如何。

二、一维数组

一维数组在数组中最常用,即将一组值存放到一个数组中,并为其定义一个名称,通 过数组中元素的位置来存取值。

创建一维数组的语法形式如下,在 C# 中,数组是对象,必须进行实例化。

在定义数组时定义的数据类型代表了数组中每个元素的数据类型。

在使用数组前必须初始化数据,即为数组赋初值。

在初始化数组时指定了数组中的长度,也就是数组中能存放的元素个数。

在指定数组的长度后,数组中的元素会被系统自动赋予初始值,与类中段的初始化类 似,数值类型的值为 0、引用类型的值为 null。

如果在初始化数组中直接对数组赋值了,那么数组中值的个数就是数组的长度。

由于在数组中存放了多个元素,在存取数组中的元素时要使用下标来存取,类似于取 字符串中的字符。

例如有一个 int 类型的数组,输出数组中的第一个元素和最后一个元素,语句如下。

也可通过输出循环

三、二维数组

在 C# 语言里多维数组中比较常用的是二维数组,也可以称之为多维数组。 定义多维数组的语法形式如下。

从上面定义的语法可以看出,它与一维数组的定义非常类似,每多一个维度则在定义 时的 [] 中增加一个“,”。

存取数组中的值也是将下标用“,”隔开。

例子:.

四、foreach遍历

C# foreach 循环用于列举出集合中所有的元素,foreach 语句中的表达式由关键字 in 隔开的两个项组成。 in 右边的项是集合名,

in 左边的项是变量名,用来存放该集合中的每个元素。

foreach 语句经常与数组一起使用,在 C# 语言中提供了 foreach 语句遍历数组中的 元素,具体的语法形式 如下。

这里变量名的数据类型必须与数组的数据类型相兼容。

在 foreach 循环中,如果要输出数组中的元素,不需要使用数组中的下标,直接输 出变量名即可。

foreach 语句仅能用于数组、字符串或集合类数据类型。

例子:

五、结构体类型

结构体与类比较相似,由于它是值类型,在使用时会比使用类存取的速度更快,但灵 活性方面没有类好。

结构体从字面上来理解是指定义一种结构,实际上结构体是一种与类的定义非常相似 的数据类型,但它是值类型。

结构体的定义位置与枚举类型一样,都是在类中定义或者在命名空间下定义,而不能 将其定义到方法中。

结构体的定义位置与枚举类型一样,都是在类中定义或者在命名空间下定义,而不能 将其定义到方法中。

注意:

1.访问修饰符:通常使用 public 或者省略不写,如果省略不写,代表使用 private 来修饰,如果结构体中的内容要被其他类中的成员访问,需要将其访问修饰符设 置为 public。

2.结构体名称:命名规则通常和变量的命名规则相同,即从第二个单词开始每个单 词的首字母大写。

3.结构体成员:包括字段、属性、方法以及后面要介绍的事件等。在结构体中也能 编写构造器,但必须带参数,并且必须为结构体中的字段赋初值。在调用结构体 的成员时,能使用不带参数的构造器,与创建类的对象时类似。

例子:

六、枚举类型

枚举类型与《C#一维数组》一节中介绍的数组比较接近,它可以将一组值存放到一 个变量名下,方便调用。

枚举类型是一种值类型,定义好的值会存放到栈中。

枚举类型在定义时使用 enum 关键字表示,枚举类型的定义与类成员的定义是一样 的,或者直接定义在命名空间中。

注意:注意不能直接将枚举类型定义到方法中。

定义枚举类型的变量的语法形式如下。

其中:

1. 与类成员的访问修饰符一样,省略访问修饰符也是代表使用 private 修饰符的。

2. 指枚举中值的数据类型。只能是整数类型,包括 byte、short、int、long 等。

3. 在枚举类型中显示的值。但实际上每个值都被自动赋予了一个整数类型值,并且 值是递增加 1 的,默认是从 0 开始的,也就是值 1 的值是 0、值 2 的值是 1。

4. 如果不需要系统自动为枚举值指定值,也可以直接为其赋一个整数值。

5. 每个没有指定值的枚举值,它的初始值都是上一个枚举类型的值加 1。

6. 通常设置的枚举值都是不同的,其整数值也是不同的。

例子: