C# - 数组

数组存储的是固定大小、连续且类型相同的元素集合。数组通常用于存储数据集合,但通常将数组视为存储在连续内存位置的同类型变量的集合更为实用。

与其声明单个变量(例如 number0、number1、... 和 number99),不如声明一个数组变量(例如 numbers),并使用 numbers[0]、numbers[1] 和 ... numbers[99] 来表示单个变量。数组中的特定元素通过索引访问。

所有数组都由连续的内存位置组成。最低地址对应第一个元素,最高地址对应最后一个元素。

C# 中的数组

声明数组

要在 C# 中声明数组,可以使用以下语法 -

datatype[] arrayName;

其中,

  • 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]; /* n 是一个包含 10 个整数的数组 */
         int i,j;

         /* 初始化数组 n 的元素 */
         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]; /* n 是一个包含 10 个整数的数组 */
         
         /* 初始化数组 n 的元素 */
         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# 程序员应该了解这些概念 -

序号 概念与描述
1 多维数组

C# 支持多维数组。多维数组最简单的形式是二维数组。

2 交错数组

C# 支持多维数组,即数组的数组。

3 将数组传递给函数

您可以通过指定数组名称(不带索引)将指向数组的指针传递给函数。

4 参数数组

这用于向函数传递未知数量的参数。

5 数组类

它定义在 System 命名空间中,是所有数组的基类,并提供用于操作数组的各种属性和方法。