
在 C# 程式設計中,集合框架是一個重要的工具,用於儲存和操作大量的資料。C# 提供了各種常用的集合類別,如陣列、清單、字典、集合和Hahstable,它們具有不同的特性和使用方式。
本篇文章將介紹 C# 中常用的集合類別,並說明它們的特性和使用方式,讓您能夠選擇合適的集合類別來優化程式效能。
陣列(Array)
陣列是 C# 中最基本的集合類別之一,是跟伺服器要一塊固定大小的連續的記憶體空間來儲存固定數量、相同資料型別的變數,所以宣告一個陣列需要指定元素的資料型別和大小。
陣列的特點:
1.元素的數量固定
2.順序不可更改
3.使用連續記憶體空間儲存,取值效能加
// 創建一個包含 5 個整數元素的陣列
int[] numbers = new int[5];
// 創建一個字串元素的陣列並初始化
string[] txts = new string[]{"txt1","txt2","txt3","txt4"};
// 設定陣列元素的值
numbers[0] = 1;
// 存取陣列元素的值
int element = numbers[2];
// 排序陣列元素
Array.Sort(txts);
清單(List)
清單是 C# 中常用的動態集合類別,它可以動態增減元素的數量。清單允許可以依照索引存取的強類型物件清單,包括新增、移除、搜尋和排序等。
// 創建一個字串清單
List<string> names = new List<string>();
// 新增元素到清單尾部
names.Add("John");
// 在指定位置插入元素
names.Insert(0, "Alice");
// 移除指定元素
names.Remove("John");
// 存取指定位置的元素
string firstElement = names[0];
字典(Dictionary)
字典是一種鍵值對(Key-Value)集合,它將每個元素與唯一的鍵(Key)關聯。字典提供了快速的鍵值查詢,適合用於快速存取和搜尋數據。
// 創建一個鍵為字串,值為整數的字典
Dictionary<string, int> ages = new Dictionary<string, int>();
ages.Add("John", 25); // 新增鍵值對到字典
ages["Alice"] = 30; // 設定指定鍵的值
// 檢查字典是否包含指定的鍵
bool containsKey = ages.ContainsKey("John");
int value = ages["Alice"]; // 根據鍵獲取值
集合(Set)
集合是一個不包含重複元素的集合類別。它提供了高效的成員檢查和集合操作,如聯集、交集和差集等。
// 創建一個整數集合
HashSet<int> numbers = new HashSet<int>();
// 新增元素到集合
numbers.Add(1);
numbers.Add(2);
// 移除指定元素
numbers.Remove(2);
// 檢查集合是否包含指定元素
bool contains = numbers.Contains(1);
Hashtable
Hashtable 是 C# 中的一個非泛型集合類別,它也是一個鍵值對(Key-Value)集合,類似於字典。Hashtable 不需要指定鍵和值的資料型別,可以儲存不同類型的元素。
// 創建一個 Hashtable
Hashtable ht = new Hashtable();
// 新增鍵值對到 Hashtable
ht.Add("Name", "John");
ht.Add("Age", 50);
// 設定指定鍵的值
ht["Age"] = 25;
// 檢查 Hashtable 是否包含指定的鍵
bool containsKey = ht.ContainsKey("Name");
// 根據鍵獲取值,注意返回的是 object 型別
object value = ht["Age"];
string value = ht["Age"].ToString();
在 C# 程式設計中,集合框架是優化程式效能的重要利器。依據不同的集合類別,包括陣列、清單、字典、集合和 Hashtable 的特性和使用方式。選擇合適的集合類別可以提高程式的效能和可讀性,並確保資料的正確性和一致性。
希望本篇文章能幫助您更深入地理解 C# 中的集合框架,並在程式開發中選擇適合的集合類別。謝謝閱讀!
參考資料
陣列 | Microsoft Learn
List<T> 類別 | Microsoft Learn
Hashtable 類別 | Microsoft Learn
Dictionary<TKey,TValue> 類別 | Microsoft Learn