Csharp 简明教程

C

一个数组存储类型相同的元素的固定大小顺序集合。数组用于存储数据集合,但通常将数组视作同一类型的变量集合更有益,这些变量存储在连续的存储器位置。

不要声明诸如 number0、number1、…​ 和 number99 这样的独立变量,而是声明一个阵列变量,如 numbers,并使用 numbers[0]、numbers[1] 和…​,numbers[99] 来表示独立变量。阵列中的特定元素通过索引进行访问。

所有阵列都包含连续的内存位置。最低地址对应于第一个元素,而最高地址对应于最后一个元素。

arrays

Declaring Arrays

要在 C# 中声明一个数组,你可以使用以下语法 −

datatype[] arrayName;

其中,

  1. datatype 用于指定数组中元素的类型。

  2. [ ] 指定数组的秩。秩指定数组的大小。

  3. arrayName 指定数组的名称。

例如,

double[] balance;

Initializing an Array

声明数组不会在内存中初始化数组。当数组变量被初始化时,您可以为数组赋值。

数组是一种引用类型,因此您需要使用 new 关键字创建一个数组实例。例如:

double[] balance = new double[10];

Assigning Values to an Array

您可以使用索引号为各个数组元素赋值,例如 −

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。

Accessing Array Elements

通过对数组名称进行索引来访问元素。这是通过在数组名称后面方括号中放置元素索引来完成的。例如:

double salary = balance[9];

以下示例演示了上述概念的声明、赋值和访问数组 −

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         int []  n = new int[10]; /* n is an array of 10 integers */
         int i,j;

         /* initialize elements of array n */
         for ( i = 0; i < 10; i++ ) {
            n[ i ] = i + 100;
         }

         /* output each array element's value */
         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

Using the foreach Loop

在前面的示例中,我们使用 for 循环访问每个数组元素。您还可以使用 foreach 语句遍历数组。

using System;

namespace ArrayApplication {
   class MyArray {
      static void Main(string[] args) {
         int []  n = new int[10]; /* n is an array of 10 integers */

         /* initialize elements of array n */
         for ( int i = 0; i < 10; i++ ) {
            n[i] = i + 100;
         }

         /* output each array element's value */
         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# 程序员应该清楚它们 −

Sr.No.

Concept & Description

1

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

2

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

3

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

4

Param arrays 这用于将未知数量的参数传递给函数。

5

The Array Class 在 System 命名空间中定义,它是一个所有数组的基础类,为处理数组提供了各种属性和方法。