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