admin 管理员组

文章数量: 1086019


2024年3月20日发(作者:php定义)

本页已使用福昕阅读器进行编辑。

福昕软件(C)2005-2007,版权所有,

仅供试用。

5

数 组

如果需要使用同一类型的多个对象,就可以使用集合和数组。C# 用特殊的记号声明和使用数组。Array

类在后台发挥作用,为数组中元素的排序和过滤提供了几个方法。

使用枚举器,可以迭代数组中的所有元素。

本章讨论如下内容:

● 简单数组

● 多维数组

● 锯齿数组

● Array类

● 数组的接口

● 枚举

5.1 简单数组

如果需要使用同一类型的多个对象,就可以使用数组。数组是一种数据结构,可以包含同一类型的多个元

素。

5.1.1 数组的声明

在声明数组时,应先定义数组中元素的类型,其后是一个空方括号和一个变量名。例如,下面声明了一个

包含整型元素的数组:

int[] myArray;

5.1.2 数组的初始化

声明了数组后,就必须为数组分配内存,以保存数组的所有元素。数组是引用类型,所以必须给它分配堆

上的内存。为此,应使用new运算符,指定数组中元素的类型和数量来初始化数组的变量。下面指定了数组

的大小。

第5章 数组

提示:值类型和引用类型请参见第3章。

myArray = new int[4];

在声明和初始化后,变量myArray就引用了4个整型值,它们位于托管堆上,如图5-1所示。

Stack

myArray

Managed Heap

int

int

int

int

图5-1

警告:在指定了数组的大小后,如果不复制数组中的所有元素,就不能重新设置数组的大小。如果事先不

知道数组中应包含多少个元素,就可以使用集合。集合请参见第10章。

除了在两个语句中声明和初始化数组之外,还可以在一个语句中声明和初始化数组:

int[] myArray = new int[4];

还可以使用数组初始化器为数组的每个元素赋值。数组初始化器只能在声明数组变量时使用,不能在声明

数组之后使用。

int[] myArray = new int[4] {4, 7, 11, 2};

如果用花括号初始化数组,还可以不指定数组的大小,因为编译器会计算出元素的个数:

int[] myArray = new int[] {4, 7, 11, 2};

使用C# 编译器还有一种更简化的形式。使用花括号可以同时声明和初始化数组,编译器生成的代码与前

面的例子相同:

int[] myArray = {4, 7, 11, 2};

5.1.3 访问数组元素

数组在声明和初始化后,就可以使用索引器访问其中的元素了。数组只支持有整型参数的索引器。

提示:在定制的类中,可以创建支持其他类型的索引器。创建定制索引器的内容请参见第6章。

通过索引器传送元素号,就可以访问数组。索引器总是以0开头,表示第一个元素。可以传送给索引器的

最大值是元素个数减1,因为索引从0开始。在下面的例子中,数组myArray用4个整型值声明和初始化。用

索引器0、1、2、3就可以访问该数组中的元素。

int[] myArray = new int[] {4, 7, 11, 2};

int v1 = myArray[0]; // read first element

int v2 = myArray[1]; // read second element

myArray[3] = 44; // change fourth element

警告:如果使用错误的索引器值(不存在对应的元素),就会抛出IndexOutOfRangeException类型的异常。

如果不知道数组中的元素个数,则可以在for语句中使用Length属性:

for (int i = 0; i < ; i++)

{

ine(myArray[i]);

}

2


本文标签: 数组 元素 使用 类型 声明