C# 系統集合泛型(System.Collections.Generic) List, Dictionary
前面,我們介紹過C#的泛型
可以讓我們自行設計泛型方法、類別來進行操作資料
在這裡,會說明C#預設提供的泛型集合類別(generic collection classes)
讓我們可以直接拿來使用於操作資料
這些類別主要都被包含在一個Class裡面,稱為系統集合泛型(System.Collections.Generic)
在這裡會介紹 List, Dictionary, Queue, Stack 集合類別
List 集合類別
List 集合類別 是C#預設提供的泛型集合類別(generic collection classes)
使用的方式和前面介紹類別泛型(Generics Class)
只要用 List<型別引數T>,不必宣告大小,就可以直接使用,
常用的List集合泛型方法
(假設,變數名稱為 mylist)
方法 | 說明 | 用法 |
---|---|---|
Add | 增加一個元素 | mylist.Add(值) |
Insert | 在指定的位置插入元素 | mylist.Insert(index. 值) |
AddRange | 插入多個元素(array或list) | mylist.Addrange(array or list) |
InsertRange | 在指定的位置插入多個元素(array或list) | mylist.InsertRange(index, array or list) |
GetRange | 取得指定index範圍的元素 | mylist.GetRange(index1, index2) |
Clear | 清除所有元素 | mylist.Clear() |
Contains | 檢查元素是否存 | mylist.Contains(值) |
Count | 元素數量 | mylist.Count() |
Reverse | 反轉元素排序 | mylist.Reverse() |
(完整list方法可以參考官方檔案)
範例:
透過 AddRange 新增多個元素(來自Array)
範例
透過 AddRange 新增多個List元素
並且用 GetRange 取得 index 2~4 的元素
範例:
透過list建立物件資料
在list中存取物件資料,就可以透過物件成員,讓資料格式更容易理解
這裡以學生資料為例
建立Student Class,包含成員 Name, Sexual, ID
在List中,則透過Student Class來建立資料
範例
Dictionary 集合類別
記得在需要翻字典的年代,開啟字典後,都會從關鍵字(部首、拼音...)開始找,接著才會知道要查詢的內容在哪頁。
而 C# 的 Dictionary集合類別的功能就和字典一樣,可以透過建立好的關鍵字(key),來取得對應的值(value)
使用Dictionary的key及value時,有一些地方要留意:
- key不能重複,要具有唯一性。
- key對應的value可以重複
- key與value 型別不必相同
並且有下列方法可以使用
常用的 Dictionary 方法
(假設,變數名稱為 myDict)
方法 | 說明 | 用法 |
---|---|---|
Add | 增加一筆資料 | myDict.Add(key, value) |
ContainsKey | 檢查key是否存在 | myDict.ContainsKey(key) |
ContainsValue | 檢查value是否存在 | myDict.ContainsValue(value) |
Count | 建立的資料筆數 | myDict.Count |
Remove | 移除屬於該筆key的資料 | myDict.Remove(key) |
TryGetValue | 透過key取得value | myDict.TryGetValue(key值, out 變數2) |
完整的Dictionary 方法可以參考官方檔案
Dictionary透過key取得value的方式
可以透過下面的方式來取得value
例如,建立一個 Dictionary ,key = 學號、 value=姓名,並且找出學號 1055010001 的人
範例:
另外,也可以直接用下列方式給予初始值
Foreach - 搭配KeyValuePair取得key value
Dictionary也可以透過foreach迴圈+KeyValuePair,
將資料(包含key value)一筆一筆取出來
範例:
如果你喜歡我們的文章內容,請在這裡按個讚
Tweet