位置:首页 > 高级语言 > C#在线教程 > C#数组

C#数组

数组存储相同类型固定大小元素的连续集合。数组用于存储数据的集合,但它往往是更加有用认为数组作为相同类型的变量的集合。

相反,声明单个变量,如 number0, number1, ..., 和 number99,,声明一个数组变量,如numbers[0], numbers[1], 和..., numbers[99]表示单个变量。在数组的特定元素由一个索引进行访问。

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

Arrays in 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 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

使用 foreach 循环

在前面的例子中,我们已经使用了一个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);
            i++;
         }
         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#程序员应当清楚:

概念 描述
多维数组 C#支持多维数组。多维数组的最简单的形式是二维数组
锯齿状数组 C#支持多维数组,这是数组的数组
通过数组到函数 可以通过指定数组的名称没有索引传递给函数的指针数组
参数数组 这是用于使未知数量的参数传到函数
Array 类 定义在系统命名空间中,它是基类所有的数组,并使用数组提供了各种属性和方法