Dictionary<TKey, TValue>
一种非常常用的泛型集合类,用于存储键值对的数据结构,可以根据键快速查询对应的值,在需要快速查找和检索数据的场景下,特别是在涉及大量数据时,使用字典是非常高效的选择。
使用方法:
-
添加引用
GetDeviceData
using System.Collections.Generic;
-
创建字典
在创建字典时,需要指定键和值的类型
Dictionary<string, int> dic = new Dictionary<string, int>()
-
添加元素
可以使用Add()方法向字典中添加键值对。如果键已经存在于字典中,则Add()方法将会抛出异常。如果我们希望键可以重复,则可以使用索引符号[]直接给字典赋值,这样如果键已经存在,则会更新对应的值
- Add 方法专门用于添加不存在的键
dic.Add("Tony", 20);
- 直接赋值给字典,如果键存在,则更新对应的值;若不存在则会报错
dic["Tong"] = 26;
- 使用 ContainsKey 检查后操作 (经典方法)
这是最清晰、最常用的方法,先检查是否存在,再决定是更新还是添加
if(dic.ContainsKey(key)){ dic[key] = value; }else{ dic.Add(key, value); }
- 使用 TryAdd 方法
该方法尝试添加键值对,如果键已存在则返回 false 且不添加,不会抛出异常
bool added = dic.TryAdd("Tong", 27); // added = false, 操作失败,字典保持不变
- 访问元素
- 通过键访问字典中的值,字典中不存在该键,则会抛出异常
int age = dic["Tony"];
- 使用 TryGetValue() 避免抛出异常
bool geted = dic.TryGetValue("Tony", out int age);
-
删除元素
可以使用Remove()方法根据键从字典中删除元素。
`dic.Remove("Tony"); -
遍历字典
使用 foreach 循环遍历字典中所有的键值对
foreach(var kvp in dic){}
foreach(var kvp in dic.Keys){}
foreach(var kvp in dic.Values){}
-
字典的常用方法
- count 属性用于获取字典中键值对的数量
int count = dic.Count;
- ContainsKey 和 ContainsValue
dic.ContainsKey(key)
判断字典中是否包含指定的键,返回一个布尔值;
dic.ContainsValue(value)
方法用于判断字典中是否包含指定的值,返回一个布尔值。 - Clear() 方法用于清空整个字典,即删除所有键值对,字典变为空
dic.Clear();