C# “字典” Dictionary 的簡單用法:輕松管理鍵值對
在C#編程中,當我們需要存儲和快速查找鍵值對(比如學生ID對應學生姓名,或者商品編號對應商品價格)時,Dictionary 就成了我們的得力助手。它就像一本字典書,通過“鍵”可以快速找到對應的“值”。今天,我們就來聊聊 Dictionary 的基本用法,讓你輕松上手。
初識 Dictionary
Dictionary 是C#中的一個泛型集合,它存儲的是鍵值對(KeyValuePair<TKey, TValue>)。鍵(Key)是唯一的,用于標識集合中的每個元素;值(Value)則與鍵相關(guān)聯(lián),可以是你想要存儲的任何類型的數(shù)據(jù)。
想象一下,你有一個學生信息表,每個學生的ID是唯一的,而姓名、年齡等信息則與這個ID相關(guān)聯(lián)。使用 Dictionary,你就可以通過學生的ID快速找到他們的信息,而不需要遍歷整個集合。
創(chuàng)建和使用 Dictionary
- 創(chuàng)建 Dictionary
要創(chuàng)建一個 Dictionary,你需要指定鍵和值的類型。比如,如果你想要存儲學生ID(int類型)和姓名(string類型)的對應關(guān)系,可以這樣寫:
Dictionary<int, string> studentDictionary = new Dictionary<int, string>();
- 添加元素
向 Dictionary 中添加元素非常簡單,你可以使用 Add 方法,或者直接使用索引器:
studentDictionary.Add(1, "張三");
studentDictionary[2] = "李四";
注意,如果嘗試添加一個已經(jīng)存在的鍵,Add 方法會拋出一個異常。而使用索引器時,如果鍵已存在,則會覆蓋原有的值。
- 訪問元素
通過鍵可以快速訪問 Dictionary 中的元素:
string studentName = studentDictionary[1]; // 得到 "張三"
如果嘗試訪問一個不存在的鍵,索引器會拋出一個 KeyNotFoundException 異常。為了避免這種情況,你可以使用 TryGetValue 方法:
if (studentDictionary.TryGetValue(3, out string name))
{
Console.WriteLine(name); // 如果鍵存在,則輸出對應的值
}
else
{
Console.WriteLine("鍵不存在");
}
- 遍歷 Dictionary
你可以使用 foreach 循環(huán)來遍歷 Dictionary 中的所有鍵值對:
foreach (KeyValuePair<int, string> student in studentDictionary)
{
Console.WriteLine($"ID: {student.Key}, 姓名: {student.Value}");
}
或者,如果你只關(guān)心鍵或值,可以使用 Keys 或 Values 屬性:
foreach (int id in studentDictionary.Keys)
{
Console.WriteLine($"ID: {id}");
}
foreach (string name in studentDictionary.Values)
{
Console.WriteLine($"姓名: {name}");
}
- 移除元素
你可以使用 Remove 方法來移除 Dictionary 中的元素:
studentDictionary.Remove(1); // 移除ID為1的學生信息
或者,如果你想清空整個 Dictionary,可以使用 Clear 方法:
studentDictionary.Clear(); // 清空所有元素
注意事項
- 鍵必須是唯一的,如果嘗試添加重復的鍵,會拋出異常或覆蓋原有值。
- 訪問不存在的鍵時,索引器會拋出異常,而 TryGetValue 方法則提供了一種更安全的訪問方式。
- Dictionary 的性能依賴于哈希表的實現(xiàn),因此鍵的選擇對性能有很大影響。盡量避免使用復雜的對象作為鍵,因為它們可能導致哈希沖突和性能下降。
結(jié)語
Dictionary 是C#中一個非常有用的集合類型,它提供了快速查找和存儲鍵值對的能力。通過本文的介紹,相信你已經(jīng)掌握了 Dictionary 的基本用法,并能夠在你的項目中靈活運用它。無論是管理學生信息、商品數(shù)據(jù),還是其他需要鍵值對存儲的場景,Dictionary 都將是你的得力助手。