当前栏目
C#中的数组
一.数组简介
数组是一种数据结构,它包含若干相同类型的变量。数组是使用类型声明的: 数组具有以下属性:
- 数组从字面上理解就是存放一组数,但在 C# 语言中数组存放的并不一定是 数字,也可以是其他数据类型。
- 一个变量只能存放一个值,如果需要计算 10 个变量中的最大值,则需要定 义 10 个变 量,非常麻烦。
- 数组的索引从零开始:具有 n 个元素的数组的索引是从 0 到 n-1。
- 数组元素可以是任何类型,包括数组类型。
- 在一个数组中存放的值都是同一数据类型的,并且可以通过循环以及数据操 作的方法对数组的值进行运算或操作。
声明数组时,方括号 [] 必须跟在类型后面,而不是标识符后面,在 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. 通常设置的枚举值都是不同的,其整数值也是不同的。
例子:
相关文章
- 前端面试 【JavaScript】— typeof 是否能正确判断类型?
- 前端面试 【JavaScript】— instanceof 能否判断基本数据类型?
- 前端面试 【JavaScript】— 能不能手动实现一下 instanceof 的功能?
- 前端面试 【JavaScript】— Object.is和=== 有什么区别?
- 前端面试 【JavaScript】— JS中类型转换有哪几种?
- 前端面试 【JavaScript】— == 和 ===有什么区别?
- 前端面试 【JavaScript】— 对象转原始类型是根据什么流程运行的?
- JavaScript 的 parseInt() 函数
- javascript实现两个数字进行组合
- JS监听键盘按键
- 大前端开发中的路由管理之五:Flutter篇
- Javascript的DOM操作
- 在Vue项目中使用WebSocket技术
- 新手向:前端程序员必学基本技能——调试JS代码
- React 毁了 Web 开发!
- 「JS 逆向百例」cnki 学术翻译 AES 加密分析
- 商标注册域名后缀用什么?商标和域名有哪些区别?
- 网站建设流程是怎样的?需要看重哪些细节?
- 网站域名商标注册流程是什么?网站域名商标有什么用?
- 如何建设一个实用性强的网站 网站上线后如何运营