Dictionary 非常適合用於需要快速查找、插入或更新數據的場景,比如:
using System;
class Program
{
static void Main(string[] args)
{
/*
// 創建一個 Dictionary,鍵是 int,值是 string
// 使用 KeyValuePair 的方式添加元素
Dictionary<int, string> names = new Dictionary<int, string>
{
{1, "Aba"}, // 添加鍵值對 1 -> "Aba"
{2, "Test"}, // 添加鍵值對 2 -> "Test"
{3, "TEST"} // 添加鍵值對 3 -> "TEST"
};
// for遍歷
// 使用 ElementAt(i) 來取得第 i 個元素
for (int i = 0; i < names.Count; i++)
{
// 透過 ElementAt(i) 方法來取得字典中的第 i 個 KeyValuePair
KeyValuePair<int, string> pair = names.ElementAt(i);
Console.WriteLine($"Key is {pair.Key} Value is {pair.Value}");
}
Console.WriteLine();
// foreach遍歷
foreach (KeyValuePair<int, string> pair in names)
{
Console.WriteLine($"Key is {pair.Key} Value is {pair.Value}");
}
*/
// 創建一個 Dictionary,鍵和值的類型都是 string
// 初始包含兩個鍵值對:{"Math", "Aba"} 和 {"Science", "Test"}
Dictionary<string, string> teachers = new Dictionary<string, string>
{
{"Math", "Aba"}, // 鍵 "Math" 對應的值是 "Aba"
{"Science", "Test"} // 鍵 "Science" 對應的值是 "Test"
};
// 試圖訪問鍵為 "math" 的值
// 因為 Dictionary 是區分大小寫的,所以這會產生錯誤
// Console.WriteLine(teachers["math"]); // error: math != Math
// 使用 TryGetValue 方法安全地檢查是否存在鍵 "Math"
// 如果鍵存在,則將對應的值存儲在 result 變量中,並輸出
// 否,則輸出 "Math not found"
if (teachers.TryGetValue("Math", out string result))
{
Console.WriteLine(result); // 輸出 "Aba"
// 更改鍵為 "Math" 的值為 "Joe"
teachers["Math"] = "Joe";
}
else
{
Console.WriteLine("Math not found"); // 如果鍵 "Math" 不存在則輸出此消息
}
// teachers.Remove("Math");
// 使用 foreach 迴圈遍歷字典,並輸出每個鍵值對
foreach (var item in teachers)
{
// 輸出格式為 "鍵 - 值"
Console.WriteLine($"{item.Key} - {item.Value}");
}
}
}