[C#]常見集合特色:優化效能的利器

在 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

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *