- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一维阵列宣告
陣列 04 4.1 何謂陣列? 陣列與變數相同,是提供儲存資料的記憶體空間。陣列可說是一群性質相同變數的集合,屬於一種循序性的資料結構,陣列中的所有資料在記憶體中佔有連續的記憶體空間。 每一個陣列擁有一個名稱,做為識別該陣列的標誌;陣列中的每一份資料稱為「陣列元素」,每一個陣列元素相當於一個變數,如此就可輕易建立大量的資料儲存空間。例如:eng[500] 可用來存放 500 個學生的英文成績。 4.1.1 一維陣列宣告 陣列的宣告及存取是以「引數」做為指標,只有一個引數的陣列稱為一維陣列,一維陣列是最簡單的陣列型態。一維陣列的宣告語法為: 要注意引數是由 0 開始,含有 n 個元素的陣列,其引數為 0 到 (n-1)。上例陣列有3 個元素,引數為 0 至 2:Score[0]、Score[1] 及 Score[2],每一個元素可儲存一個整數。如果存取的引數位置超出範圍,將會產生 IndexOutOfRangeException 的錯誤。 上面一維陣列的宣告略為繁複,可簡化為: 4.1.2 陣列初值設定 陣列與變數一樣,是用於儲存資料,在程式中可以使用「=」來設定陣列元素的值。陣列初值設定可以先宣告陣列變數,然後再設定各元素初值,語法為: 陣列初值設定也可以在宣告陣列變數時同時設定各元素初值:只要在資料型別後面加上等號,再將各元素的值置於大括號中,元素值彼此以逗號分開即可,語法為: 此種方式可將前面 4 列程式縮簡為 1 列,相當精簡及方便。 4.1.3 規律性陣列初值設定 若陣列元素的初值具有規律性,可使用廻圈來設定,如此可藉程式一次設定大量初始值。例如:某班級有學生 40 人,要以 SeatNo 陣列來儲存學生座號,因為座號為1 到 40 號,使用 for 廻圈即可設定輕鬆完成: 要顯示陣列元素的內容,使用 for 廻圈是最恰當的方式:因為陣列的引數是以 1 遞增,for 廻圈可輕易取得陣列的引數值。例如顯示上例的學生座號: 4.1.4 foreach?廻圈 foreach?廻圈的功能與 for?廻圈類似,都是當條件成立時,就會執行指定的程式區塊一次。foreach?廻圈是陣列專用的廻圈,它會依序對陣列中的每個元素執行一次程式區塊,直到最後一個元素後就結束廻圈。 4.1.5 陣列排序 將一序列的值由小至大或由大至小排列,稱為排序。泡沫排序是一種最簡單且最常用的排序,雖然可以使用 System.Array 類別和 ArrayList 的 Sort() 方法( 將在 4.3及 4.4 節說明)對陣列排序,但能了解排序的原理仍是相當重要。 是否感覺排序過程中,最小的數就像泡沫般往前冒出,整理出它的規則為: 將序列 (i+1)~n 個數分別和第 i 個數比較,如果比第 i 個數小,則互相交換。 如果要要由大至小排序,方法大致相同,規則改為: 將序列 (i+1)~n 個數分別和第 i 個數比較,如果比第 i 個數大,則互相交換。 4.2 二維陣列 二維陣列是指陣列的引數有兩個,三維陣列是指陣列的引數有三個,依此類推。不過,維數較多的陣列會佔用相當可觀的記憶體,而且管理上也會變得非常複雜,使用時要非常小心。以下的說明以二維陣列為主,多維陣列的宣告與使用皆與二維陣列相同。 4.2.1 二維陣列宣告 二維陣列的引數有兩個,兩個引數之間以逗號隔開,其語法為: 使用多維陣列時需特別注意龐大的元素個數將佔用非常多的記憶體,有時甚至導致系統因資源耗盡而當機。 多維陣列的宣告語法為: 陣列元素個數為各引數的乘積: 4.2.2 二維陣列初值設定 與一維陣列相同,二維陣列初值設定可以先宣告陣列變數,然後再設定各元素的初值,語法為: 二維陣列的初值也可以在宣告陣列變數時同時設定各元素初值,語法為: 要特別注意,與一維陣列相同,不能同時指定陣列的大小及設定陣列初值,下面的設定方式會產生錯誤: 如果要顯示二維陣列的內容,雙廻圈是最適宜的方式,例如要顯示上例二維陣列內容的雙廻圈程式碼為: 4.3 System.Array 類別 Visual C# 的陣列繼承自 System.Array 類別,System.Array 類別提供許多屬性和方法可對陣列進行複製、排序、搜尋等應用。 4.3.1 System.Array 類別的屬性及方法 4.3.2 動態陣列 Visual C# 建立陣列實體後,就不可以改變陣列大小,要改變陣列大小必須利用System.Array 類別的 Copy() 方法,將陣列先複製到另一陣列,再將新陣列設定給原始陣列, 語法為: 4.4 ArrayList 類別 Visual C# 另外提供 ArrayList 類別,可以建立不定長度的陣列,由於此種陣列的資料型態為物件,因此可以存放任何型態的資料。 ArrayList 類別屬於 Sy
原创力文档


文档评论(0)