Dictionary<TKey, TValue> 是一个泛型集合,它存储键值对(key-value pairs),其中每个键(key)都是唯一的。这个集合类提供了快速的数据插入和检索功能,因为它是基于哈希表实现的。
注意 key不能重复,如果key重复了,系统就会报错
-
泛型:
Dictionary是泛型集合,这意味着你可以指定存储在字典中的键和值的数据类型。例如,Dictionary<string, int>表示键是字符串类型,值是整数类型。 -
添加元素:使用
Add方法或索引器来添加键值对。如果键已经存在,Add方法会更新对应的值。Dictionary<string, int> scores = new Dictionary<string, int>(); scores.Add("Alice", 90); scores["Bob"] = 85; // 使用索引器添加或更新 -
检索元素:使用索引器通过键来检索值。
复制 int aliceScore = scores["Alice"];
-
检查键是否存在:使用
ContainsKey方法来检查字典中是否存在特定的键。if (scores.ContainsKey("Alice")) {Console.WriteLine("Alice is in the dictionary."); } -
遍历字典:可以使用
foreach循环遍历字典中的所有键值对。foreach (KeyValuePair<string, int> kvp in scores) {Console.WriteLine($"Name: {kvp.Key}, Score: {kvp.Value}"); } -
移除元素:使用
Remove方法来移除键值对。如果键不存在,Remove方法会返回false。scores.Remove("Alice"); -
获取键和值的集合:可以使用
Keys和Values属性来获取字典中所有键和值的集合。IEnumerable<string> keys = scores.Keys; IEnumerable<int> values = scores.Values;
-
获取元素数量:使用
Count属性来获取字典中元素的数量。int count = scores.Count;
-
清空字典:使用
Clear方法来移除字典中的所有元素。scores.Clear();
-
TryGetValue 方法:尝试获取与指定键相关联的值,如果键存在,返回
true并输出值;如果不存在,返回false。int value; if (scores.TryGetValue("Alice", out value)) {Console.WriteLine($"Alice's score is {value}."); } else {Console.WriteLine("Alice is not in the dictionary."); }
注意 Dictionary的使用索引器查找元素的时候 和数组不一样 不是从0开始 而是根据你添加的tkey寻找