使用 C# 中的?Dictionary
?數據結構
在 C# 中,Dictionary<TKey, TValue>
是一個非常強大的數據結構,用于存儲鍵值對。它提供了高效的查找、插入和刪除操作,適用于需要快速訪問數據的場景。本文將通過一個簡單的示例,介紹如何使用 Dictionary
來進行常見的操作。
創建和初始化字典
Dictionary
是一個泛型集合,需要指定鍵和值的類型。以下代碼展示了如何創建一個 Dictionary<int, int>
并添加鍵值對:
// 創建一個新的 Dictionary<int, int> 實例
Dictionary<int, int> keyValues = new Dictionary<int, int>();// 添加鍵值對到字典中
keyValues.Add(0, 100);
keyValues.Add(1, 200);
keyValues.Add(2, 300);
訪問和檢查字典
通過鍵可以快速訪問字典中的值,同時也可以檢查字典是否包含某個鍵或值:
// 通過鍵來訪問值
int value = keyValues[2]; // 獲取鍵為 2 的值// 檢查字典中是否包含某個鍵
bool containKey = keyValues.ContainsKey(3); // 返回 false// 檢查字典中是否包含某個值
bool containValue = keyValues.ContainsValue(100); // 返回 true
更新和刪除鍵值對
字典中的值可以通過鍵直接更新,也可以通過鍵刪除某個鍵值對:
// 更新字典中某個鍵對應的值
keyValues[1] = 10; // 將鍵為 1 的值更新為 10// 移除字典中的某個鍵值對
keyValues.Remove(2); // 移除鍵為 2 的鍵值對
遍歷字典
Dictionary
提供了多種遍歷方式,包括遍歷鍵值對、鍵集合或值集合:
// 遍歷字典中的所有鍵值對
foreach (KeyValuePair<int, int> kvp in keyValues)
{Console.WriteLine($"Key={kvp.Key}, Value={kvp.Value}");
}// 或者只遍歷鍵或值
foreach (int key in keyValues.Keys)
{Console.WriteLine($"Key={key}");
}foreach (int value in keyValues.Values)
{Console.WriteLine($"Value={value}");
}
其他常用操作
-
檢查字典是否為空:通過檢查
Count
屬性是否為 0 來判斷字典是否為空。 -
獲取字典中元素的數量:通過
Count
屬性獲取字典中的鍵值對數量。
// 檢查字典是否為空
bool isEmpty = keyValues.Count == 0; // 返回 false// 獲取字典中元素的數量
int count = keyValues.Count; // 返回 2
示例代碼完整版
以下是完整的代碼示例,展示了上述所有操作:
using System;
using System.Collections.Generic;class Program
{static void Main(){// 創建一個新的 Dictionary<int, int> 實例Dictionary<int, int> keyValues = new Dictionary<int, int>();// 添加鍵值對到字典中keyValues.Add(0, 100);keyValues.Add(1, 200);keyValues.Add(2, 300);// 通過鍵來訪問值int value = keyValues[2];// 檢查字典中是否包含某個鍵/某個值bool containKey = keyValues.ContainsKey(3);bool containValue = keyValues.ContainsValue(100);// 更新字典中某個鍵對應的值keyValues[1] = 10;// 移除字典中的某個鍵值對keyValues.Remove(2);// 遍歷字典中的所有鍵值對foreach (KeyValuePair<int, int> kvp in keyValues){Console.WriteLine($"Key={kvp.Key}, Value={kvp.Value}");}// 或者只遍歷鍵或值foreach (int key in keyValues.Keys){Console.WriteLine($"Key={key}");}foreach (int value in keyValues.Values){Console.WriteLine($"Value={value}");}// 檢查字典是否為空bool isEmpty = keyValues.Count == 0;// 獲取字典中元素的數量int count = keyValues.Count;Console.ReadKey();}
}
通過以上代碼,你可以快速掌握 Dictionary
的基本操作,從而在實際開發中高效地使用這一數據結構。