閱讀Stephens' C#教材第十六章筆記
Chapter 16 Using Arrays and Collections.
過去章節所介紹的變數都只能存放單一筆資料,可能是數值(Integer)、字串(String)或是指標(Point)。本章要介紹可以存放不只一筆資料的變數,它的名稱除了Array之外,還有List, Dictionart, Stack, Queue等集合(Collection)類別。
Array(台灣稱為陣列,大陸稱為數組)是一群具有索引(index)的相同類型資料,儲存在同一名稱的變數中,索引通常由0或大於0的整數開始。
Array的最小與最大索引有個特殊名詞叫 lower bound及upper bound,預設lower bound為0,而upper bound則為Array長度減1(array.length-1)。
陣列建立步驟如下:
宣告 int[] values;
初始化 values = new int[2];
同時宣告陣列並初始化
int[] values = new int[2];
陣列的資料存入
values[0] = 0;
values[1] = 1 * 1;
同時宣告陣列、初始化並資料存入
int[] values = {0, 1};
Fibonacci程式示範使用array進行費波那西數列的計算(本程式只到19有效)
多維陣列是組合多個一維陣列的陣列,基本上也是陣列,但是索引不只一位。
例如一個有八欄四列的陣列
宣告陣列並初始化
int[,] values = new int[3,4];
資料範圍包含
values[0,0], values[0,1], values[0,2], values[0,3]
values[1,0], values[1,1], values[1,2], values[1,3]
values[2,0], values[2,1], values[2,2], values[2,3]
陣列常用的方法,書上列有BirnarySearch, Clear, Copy, IndexOf, LastIndexOf, Resize, Reverse, Sort,完整的的方法與屬性,請參考微軟網頁
Factorial程式示範使用array進行階乘的計算(本程式只到19有效)
DayPlanner程式示範array中索引與值的對應關係
對比array使用index進行存取,.Net Framkwork提供一種集合類別(Collection classes)用其他的方式存取其中的資料。
例如Dictionary使用key快速尋找資料,關於集合類別的介紹可參考魚小章寫的一般/泛型 Generic Collection 集合型別介紹
書上集合類別介紹了泛型 Generic class、List、SortedList、Dictinoary、Queue及Stack六種,都只有很半頁不到的介紹,詳細請看微軟網站
StackDemo程式示範使用Stack的Push和Pop的操作
QueueDemo程式示範使用Stack的Enqueue和Dequeue的操作
Appointments程式示範使用Dictionary進行新增修改及尋找的操作
TRY IT中示範如何設計出圖中的程式,以Dictionary進行新增修改及尋找的操作