在進行批量處理數據的時候,我們要用到數組。數組是一組類型相同的有序數據。數組按照數組名、數據元素的類型和維數來進行描述。C#中提供System.Array類是所有數組類型的基類。
數組的聲明格式:
non-array-type[ dim-separators ] array-instance name;
比如我們聲明一個整數數組:
int[] arr;
在定義數組的時候,可以預先指定數組元素的個數,這時在“[]”中定義數組的元素個數,它的個數可以通過數組名加圓點加“Length”獲得。而在使用數組的時候,可以在“[]”中加入下標來取得對應的數組元素。C#中的數組元素的下標是從0開始的,也就是說,第一個元素對應的下標為0,以後逐個增加。
在C#中數組可以是一維的也可以是多維的,同樣也支持矩陣和參差不齊的數組。一維數組最為普遍,用的也最多。我們先看一看下面的例子:
程序清單4-3:
using System: class Test { static void Main(){ int[] arr=new int[5]; for(int i=0;i〈arr.Length;i++) arr[i]=i*i; for(int i=0;i〈arr.Length;i++) Console.WriteLine("arr[{0}]={1}",i,arr[i]); } }
這個程序創建了一個基類型為int型的一維數組,初始化後逐項輸出。其中arr.Length表示數組元素的個數。程序的輸出為:
arr[0]=0
arr[1]=1
arr[2]=4
arr[3]=9
arr[4]=16
上面的例子中我們用的是一維的,很簡單吧!下面我們介紹多維的:
class Text { static void Main(){ //可動態生成數組的長度 string[] a1; //一維string數組 string[,] a2 //二維 string[,,] a3 //三維 string[][] j2; //可變數組(數組) string[][][][] j3; //多維可變數組 }
在數組聲明的時候可以對數組元素進行賦值,或者叫做對數組的初始化。也可以在使用的時候進行動態賦值。看下面的例子:
class Test { static void Main(){ int[] a1=new int[] {1,2,3}; int[,] a2=new int[,] {{1,2,3},{4,5,6}}; int[,,] a3=new int[10,20,30]; int[][] j2=new int[3][]; j2[0]=new int[] {1,2,3}; j2[1]=new int[] {1,2,3,4,5,6}; j2[2]=new int[] {1,2,3,4,5,6,7,8,9}; } } 上面的例子我們可以看出數組初始化可以用幾種不同的類型,因為它要求在一個初始化時要確定其類型。比如下面的寫法是錯誤的: class Test { static void F(int[] arr){} static void Main(){ F({1,2,3}); } } 因為數組初始化時{1,2,3}並不是一個有效的表達式。我們必須要明確數組類型: class Test { static void F(int[] arr) {} static void Main(){ F(new int[] {1,2,3}); } }