一、基本概念
在編程中,鍵值對是一種常見的數據結構。C#中的鍵值對是一種基於哈希表的集合類型,也稱為字典(Dictionary)類型,它由一個鍵和一個值組成。每個鍵必須是唯一的,而每個值可以對應多個鍵。
鍵值對的實現是基於哈希表的,哈希表是一種將輸入映射到具體位置的數據結構。在哈希表中,每個鍵都對應一個哈希碼,哈希碼將鍵映射到一個桶中,桶中存儲着鍵和對應的值,這樣在查找時只需要將鍵轉換成哈希碼,再查找哈希碼對應的桶中是否存在該鍵即可。
C#中的鍵值對類型是泛型的,使用時需要指定鍵和值的類型。使用鍵值對時,我們可以通過鍵獲取對應的值,也可以將新的鍵值對添加到集合中。
二、創建和初始化
在C#中,我們可以使用Dictionary類來創建鍵值對集合,其中TKey和TValue分別表示鍵和值的類型。創建一個空的鍵值對集合可以使用如下代碼:
Dictionary<string, int> dict = new Dictionary<string, int>();
我們也可以在創建時初始化鍵值對集合:
Dictionary<string, int> dict = new Dictionary<string, int> {
{ "apple", 1 },
{ "banana", 2 },
{ "cherry", 3 }
};
這樣我們就得到了一個包含三個元素的鍵值對集合,鍵分別是”apple”、”banana”和”cherry”,對應的值分別是1、2和3。
三、訪問和修改
通過鍵獲取對應的值可以使用索引器,例如:
int value = dict["apple"];
這樣就可以獲取鍵為”apple”的值1。如果鍵不存在,則會拋出KeyNotFoundException異常。
我們也可以使用TryGetValue方法獲取鍵對應的值,這樣避免了訪問不存在的鍵時拋出異常的情況:
int value;
bool success = dict.TryGetValue("apple", out value);
if (success) {
Console.WriteLine("value of 'apple': " + value);
}
如果鍵不存在,success將返回false,此時value的值為0。
使用索引器或Add方法可以向鍵值對集合中添加新的鍵值對,例如:
dict["durian"] = 4;
dict.Add("elderberry", 5);
這樣我們就向集合中添加了兩個新的鍵值對。如果已經存在該鍵,則使用索引器會更新對應的值,而Add方法會拋出ArgumentException異常。
如果想要修改已經存在的鍵值對的值,可以直接使用索引器或鍵值對的Key屬性進行修改:
dict["apple"] = 10;
dict["banana"]++;
這樣我們就將鍵為”apple”的值修改為10,將鍵為”banana”的值加1。
四、遍歷和刪除
我們可以使用foreach循環對鍵值對集合進行遍歷:
foreach (var pair in dict) {
Console.WriteLine(pair.Key + ": " + pair.Value);
}
這樣就會按照鍵值對的順序,依次輸出每個鍵和對應的值。
如果想要刪除一個已經存在的鍵值對,可以使用Remove方法:
dict.Remove("apple");
這樣就刪除了鍵為”apple”的鍵值對。如果想要清空整個鍵值對集合,可以使用Clear方法:
dict.Clear();
這樣就清空了整個集合中的所有鍵值對。
原創文章,作者:WNJHK,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/361850.html