官术网_书友最值得收藏!

3.4 數組

常量和變量都只能存儲一個值,數組則可以簡單地理解為一次存儲多個值的變量。數組可以簡化繁重的變量定義工作。例如,有100名學生的姓名需要存入變量中,如果用逐一定義變量的方式,則需要依次定義name1,name2,name3……,需要重復定義100次;如果采用數組的方式,只要一句簡單的語句,就可以一次全部完成定義工作,而且以后的賦值使用同樣簡單。

3.4.1 數組的有關概念

數組即一組數據的集合,數組本質上也是一個變量,但這個變量與普通變量不同,普通變量只能存儲一個數值,數組則能存儲具有同一類型的多個數值。需要存儲多個相同類型的變量。如30個學生的姓名,如果使用30個變量,不但定義煩瑣,同一操作必須進行30次,更為煩瑣。有了數組,可以把他們定義為一個數組變量Stu_Name,而用Stu_Name[1],Stu_Name[2]……,代表每一個學生了。

使用C#的數組之前,必須了解幾個基本概念。

1.一維數組與多維數組

數組由數組名稱和下標組成。只有一個下標的數組稱為一維數組,如Student[4],Day[7]。有兩個下標的數組稱為二維數組,如myArray[2,3]。以此類推,有幾個下標的數組稱為幾維數組,二維及二維以上的數組統稱為多維數組。

2.數組的長度

數組的長度是指數組由多少個元素組成。數組中的元素必須具有相同的類型,如數組中的數據全部都是整數或全部都是字符串。Student[4]表示該數組有4個元素,數組的長度為4;myArray[2,3]則表示該數組由2×3個元素組成,該數組的長度為6。

3.數組索引運算符

數組的索引也叫數組的下標,數組的索引從0開始,到數組長度減1結束。[]為數組索引運算符,[]里面的數值為數組的下標。例如,數組Student[4],其元素為Student[0]、Student[1]、Student[2]、Student[3]。

4.C#中表示數組的類

C#中的System.Array類是所有數組的基類,該類中提供了一些屬性和方法用來實現有關數組的各種操作,如Copy方法可實現數組的復制,Sort方法可實現對一維數組元素的排序等。

3.4.2 數組的定義

一般而言,數組都必須先聲明后使用,在C#中數組是一個引用類型,聲明數組只是預留一個存儲位置以引用將來的數組實例,實際的數組對象是通過new運算符在運行時動態產生的。因此,在數組聲明時,可不先給出數組的元素個數?,F分別介紹一維數組和多維數組,定義形式如下。

1.一維數組

(1)一維數組聲明語法形式

其中數組元素的數據類型,可以是C#中任意的數據類型;數組名必須遵循標識符的命名規則。例如,定義整型數據的數組Stu,語法格式為:

定義double類型數據的數組money,語法格式為:

(2)創建數組對象

用new運算符創建數組實例,有兩種基本形式。

第一種是聲明數組和創建數組分別進行,語法格式如下。

第二種是聲明數組和創建數組實例合在一起書寫。

創建數組經常的用法如表3-13所示。

表3-13 一維數組類型舉例

2.多維數組

多維數組就是指能用多個下標訪問的數組。在聲明時方括號內加逗號,表明該數組是多維數組。

(1)多維數組聲明語法形式

例如,定義int類型的二維數組Student,其語法格式為

定義數據為雙精度類型的三維數組Number,其語法格式為

(2)創建數組對象

創建多維數組對象語法格式與創建一維數組對象相同,也是使用new運算符,聲明數組和創建數組也是既可分行書寫,也可合在一起書寫,程序舉例如表3-14所示。

表3-14 多維數組類型舉例

3.4.3 數組的使用

1.數組的賦值

數組中元素的賦值即可以逐一進行賦值,也可以一次性全部賦值。

1)單獨賦值。單獨賦值就是通過關鍵字new對數組進行初始化之后逐個指定數組中各元素的值。

2)一次性全部賦值。在聲明數組的同時對數組進行初始化賦值,此時可省略數組的大小,如表3-15所示。

表3-15 數組賦值舉例

2.數組內容的讀取

數組元素可以當成普通變量一樣使用,所以其內容讀取方法與普通變量讀取方法完全相同。只需要在數組名后面加上索引值就可以使用。例如,讀取number[2]的值可以使用S_number=number[2]。

3.4.4 與數組有關的操作

數組除了可以進行與變量相同的各種操作之外,系統還提供了許多有關數組的函數和方法,極大地擴充了數組的功能。

1.數組的長度

在C#中有兩種方法可以求得數組的長度,一種是通過數組的Length屬性,另一種是通過GetLength()方法。現舉例說明,如表3-16所示。

表3-16 數組長度舉例

2.使用foreach遍歷數組元素

在C#中可用foreach循環語句遍歷數組中的每個元素,foreach語句的使用規則將在3.5.3節介紹下面通過一個找出數組中的最大值及最小值實例說明遍歷數組元素的方法。

【操作實例3-6】 求數組中的最大數和最小數。

新建網站文件,在設計視圖中添加一個按鈕Button1,并將其Text屬性改為“遍歷數組”,然后添加一個文本框Text1Box1,雙擊按鈕Button1后添加如表3-17所示代碼。

表3-17 用foreach語句遍歷數組

程序編寫完成后,按〈Ctrl+F5〉組合鍵運行后,單擊“遍歷數組”按鈕出現如圖3-4所示的最終運行結果界面。

3.數組元素的查找

在C#中,可以通過數組類的方法Array.IndexOf和Array.LastIndex來查找指定的元素在數組中出現的位置。例如:

上述語句中將用整數類型變量pos返回“胡少坤”在數組name中第一次出現的索引值。

4.數組元素的排序

C#中用以實現數組排序的方法為Array.Sort()。

【操作實例3-7】 將一個數組按照從小到大排序。

新建網站文件,在設計視圖中添加一個按鈕Button1,并將其Text屬性改為“數組排序”,然后添加一個文本框Text1Box1,雙擊按鈕Button1后添加如表3-18所示代碼。

表3-18 用ArraySort()實現數組排序

程序編寫完成后,按〈Ctrl+F5〉組合鍵運行后,單擊“數組排序”按鈕出現如圖3-5所示的最終運行結果界面。

圖3-4 用foreach遍歷數組執行效果

圖3-5 數組排序執行效果

主站蜘蛛池模板: 尚志市| 吴川市| 灵山县| 盐源县| 罗定市| 陆良县| 资源县| 镇平县| 革吉县| 二连浩特市| 武邑县| 紫阳县| 微山县| 玉田县| 项城市| 突泉县| 广州市| 固阳县| 乳山市| 永仁县| 宁化县| 桐乡市| 上林县| 定日县| 枣阳市| 天等县| 昂仁县| 榆中县| 察雅县| 石屏县| 衡山县| 灵山县| 翁源县| 汕尾市| 丹巴县| 宜昌市| 偃师市| 苍山县| 汪清县| 康定县| 漳浦县|