位置:首頁 > 高級語言 > 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 類 定義在係統命名空間中,它是基類所有的數組,並使用數組提供了各種屬性和方法