數組是一種常用的數據類型,且屬于引用類型。它是由一組相同數據類型的元素構成的。在C#語言的類型系統中,數組由抽象類System.Array派生而來的。在內存中,數組占用一塊連續的內存,元素按順序連續存放在一起,數組中每一個單獨的元素并沒有自己的名字,但是可以通過其位置(索引)來進行訪問或修改。
在C#中,數組元素的索引是從0開始的,即對于有N個元素的數組,其索引范圍是從0~N-1。
在這里重點討論一下一位數組的使用方法。
1.一維數組的聲明
數組聲明時,主要聲明數組的名稱和所包含的元素類型,一般格式如下:
數組類型[] 數組名;
數組類型,可以使C#中任意有效的數據類型,包括類;數組名可以是C#中任意有效的標識符。下面是數組聲明的幾個例子:
int[ ] num;
float [ ] fNum;
string[ ] sWords;
Studnet[ ] stu; //Student是已定義好的類類型
注意:
數據類型[ ] 是數組類型,變量名放在[ ]后面,這與C和C++是不同的;
聲明數組時,不能指定長度。
2.一維數組的創建
創建數組就是給數組對象分配內存。因為數組本身也是類,所以跟類一樣,聲明數組時,并沒有真正創建數組,使用前,要用new操作符來創建數組對象。創建方法有以下幾種方法:
(1)先聲明,后創建
形式為:
數據類型[ ] 數組名;
數組名 = new 數據類型[元素個數];
下面舉幾個例子:
int [] num; num = new int[10]; //聲明并創建了一個具有10個整型元素的數組num。
string[ ] str; str = new string[3]; //聲明并創建了一個具有3個字符串數據類型的數組str.
double [] dnum; dnum = new double[5]; //聲明并創建了一個具有5個double型數據元素的數組dnum.
(2)聲明的同時創建數組
數據類型[ ] 數組名 = new 數據類型[元素個數];
下面是幾個例子:
int[] num = new int[10];
double[] t = new double[4];
short[] st = new short[17];
3.一維數組的初始化
數組在定義的同時給定元素的值,即為數組的初始化,初始化方法有以下幾種:
(1)數據類型[ ] 數組名 = new 數據類型[元素個數]{初始值列表}; 如以下例子:
int [] num = new int[4]{12,34,56,78};
string[ ] str = new string[3]{"you","and","me"};
float[ ] f = new float[5]{1.345f,12,13.5f,109.345f,12.1f};
(2)省略數組的大小,即:數據類型[ ] 數組名 = new 數據類型[ ]{初始值列表}; 如以下的例子:
short[ ] st = new short[]{2,4,67,3}; //數組元素的個數為4
int[ ] iNum = new int[]{23,45,67,89,100,234,567,234}; //數組元素的個數為8
(3)進一步省略new和數據類型[],即:數據類型[ ] 數組名 = {初始值列表}; 如以下的例子:
string[ ] names = {"wangtao","liuli","sanmao","shanghaitan","jinghuayanyun"};
int [ ] iNum = {45,28,34,74,84};
4.一維數組的賦值
要給數組賦值,需要用到數組的索引,格式為:
數組名[索引值] = 數據的值;
下面試一個例子:
int [] a = new int[4];
a[0] = 24;
a[1] = 54;
a[2] = 87;
a[3] = 93;
注意到以上的例子索引是從0~3。我們也看出,在給數組進行大量的賦值時,顯得較麻煩,不如初始化方便。
5.數組類常用屬性和方法
Length 獲得數組元素的個數
Rank 獲得數組的秩(維數),對于一維數組來說,Rank 總是為1。
GetLength(int) 獲得指定維度的元素個數。
6.數組應用舉例
用選擇法對10個數按著由小到大進行排序。
源程序代碼如下:
using System;
class Class1
{
static void Sort(int[] a)
{
int i,j,k,temp;
for(i=0;i<a.Length-1;i++)
{
k=i;
for(j=i+1;j<a.Length;j++)
if(a[k]>a[j])
k=j;
if(k!=i)
{temp = a[i];a[i] = a[k]; a[k] = temp;}
}
}
static void Main(string[] args)
{
int[] AA = new int[]{918,124,58,1125,825,51,82};
Sort(AA);
Console.WriteLine("排序后的結果:");
for(int i=0;i<AA.Length;i++)
Console.Write(AA[i]+" ");
Console.WriteLine();
}
}
運行結果如下:
新聞熱點
疑難解答