数组存储同一类型的固定大小的连续集合。数组用于存储数据集合,但通常更实用的是将数组视为存储在同一连续内存位置的相同类型变量的集合。
与其声明单独的变量,如 number0
, number1
, ..., number99
,不如声明一个数组变量如 numbers
并使用 numbers[0]
, numbers[1]
, 和 ..., numbers[99]
来表示单独的变量。数组中的特定元素可通过索引来访问。
所有的数组都由连续的内存位置组成。最低地址对应第一个元素,最高地址对应最后一个元素。
C# 中的数组
声明数组
要在 C# 中声明一个数组,可以使用以下语法:
datatype[] arrayName;
其中,
例如,
double[] balance;
初始化数组
声明数组并不会在内存中初始化数组。当数组变量被初始化时,你可以给数组赋值。
数组是一种引用类型,因此需要使用 new
关键字来创建数组的实例。例如,
double[] balance = new double[10];
给数组赋值
你可以使用索引号来给个别数组元素赋值,如下所示:
double[] balance = new double[10];
balance[0] = 4500.0;
你也可以在声明数组的同时给数组赋值,如下所示:
double[] balance = { 2340.0, 4523.69, 3421.0 };
你还可以创建并初始化数组,如下所示:
int [] marks = new int[5] { 99, 98, 92, 97, 95 };
你也可以省略数组的大小,如下所示:
int [] marks = new int[] { 99, 98, 92, 97, 95 };
你可以把一个数组变量复制到另一个目标数组变量中。在这种情况下,目标和源都指向同一个内存位置:
int [] marks = new int[] { 99, 98, 92, 97, 95 };
int[] score = marks;
当你创建一个数组时,C# 编译器会隐式地根据数组类型初始化每个数组元素的默认值。例如,对于 int
数组,所有元素都被初始化为 0
。
访问数组元素
通过索引数组名来访问元素。这是通过在数组名后放置方括号内的元素索引来完成的。例如,
double salary = balance[9];
下面的示例展示了前面提到的概念,即声明、赋值和访问数组:
示例代码
using System;
namespace ArrayApplication {
class MyArray {
static void Main(string[] args) {
int [] n = new int[10];
int i,j;
for ( i = 0; i < 10; i++ ) {
n[ i ] = i + 100;
}
for (j = 0; j < 10; j++ ) {
Console.WriteLine("Element[{0}] = {1}", j, n[j]);
}
Console.ReadKey();
}
}
}
当上述代码被编译和执行时,它会产生以下结果:
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
使用 foreach 循环
在前面的示例中,我们使用了 for
循环来访问每个数组元素。你也可以使用 foreach
语句来遍历数组。
示例代码
using System;
namespace ArrayApplication {
class MyArray {
static void Main(string[] args) {
int [] n = new int[10];
for ( int i = 0; i < 10; i++ ) {
n[i] = i + 100;
}
foreach (int j in n ) {
int i = j-100;
Console.WriteLine("Element[{0}] = {1}", i, j);
}
Console.ReadKey();
}
}
}
当上述代码被编译和执行时,它会产生以下结果:
Element[0] = 100
Element[1] = 101
Element[2] = 102
Element[3] = 103
Element[4] = 104
Element[5] = 105
Element[6] = 106
Element[7] = 107
Element[8] = 108
Element[9] = 109
C# 中的数组概念
以下是几个与数组相关的概念,C# 程序员应该清楚:
-
多维数组
-
C# 支持多维数组。最简单的多维数组形式是二维数组。
-
-
将数组传递给函数
-
你可以通过指定数组名而不带索引来传递数组的指针给函数。
-
-
数组类
-
定义在
System
命名空间中,它是所有数组的基本类,并提供了用于操作数组的各种属性和方法。