Dictionary字典
//字典:类似List 只能存储固定类型的数据,长度不固定
//Array ArrayList List使用索引进行数据的操作,字典使用"键"进行数据的操作
//存储结构:键值对(key-value)
//键(key):标识 在一个字典中,键是唯一的,不能为null
//值(value):可以重复,可以为null
//格式:Dictionary<键的数据类型,值的数据类型> 变量名 = new Dictionary<键的数据类型,值的数据类型> ();
Dictionary<string,int> keyValue1 =newDictionary<string,int>()
{
{"Name",111},
{"222",333},
{"ABC",444},
{"张三",555},
//键的校验发生在运行阶段
{"张三1",666},
};
//属性
//Count:键值对的总数
Console.WriteLine(keyValue1.Count);
//Keys:键的集合
Console.WriteLine(keyValue1.Keys);
//Values:值的集合
Console.WriteLine(keyValue1.Values);
//按照键【.Keys】遍历所有键,通过键获取对应值
foreach(stringkinkeyValue1.Keys)
{Console.WriteLine($"键:{k},值:{keyValue1[k]}");}
//按照值【.Values】遍历集合中所有的值,只能拿到value,无法获取key
foreach(intvinkeyValue1.Values)
{Console.WriteLine(v);}
//按照键值对【直接遍历字典】每次迭代得到KeyValuePair<TKey,TValue>键值对对象
foreach(KeyValuePair<string,int> iteminkeyValue1)
{Console.WriteLine($"键:{item.Key},值:{item.Value}");}
增
//Add()
keyValue1.Add("李四",777);
//格式:字典[key]=值键存在就修改值,键不存在就等同于新增
keyValue1["王五"] = 888;
keyValue1["张三1"] = 999;
删
//Remove(key)根据键删除整条数据,返回bool值
boolb1=keyValue1.Remove("张三");
Console.WriteLine(b1);
//Clear()清空字典
keyValue1.Clear();
改
//字典[key]=新值
//前提:键必须存在;如果键不存在,等价于新增一组键值对
查
//[key]按键取值 (键不存在抛出异常)
Console.WriteLine(keyValue1["Name"]);
//TryGetValue(键, out 接收值变量)
//返回bool:true找到;false未找到,不会报错
intnum;
boolb2 = keyValue1.TryGetValue("ABC",outnum);
if(b2)
{
Console.WriteLine(num);
}
判断
//ContainsKey(key):判断键是否存在
keyValue1.ContainsKey("222");
//ContainsValue(value):判断值是否存在
keyValue1.ContainsValue(111);
//【方法】Clear():清空字典内所有键值对,字典本身对象保留
keyValue1.Clear();
//Dictionary作用:一般记录一些映射关系,信号灯颜色不同等级
重点特性:【Dictionary字典 默认无序】
//遍历输出顺序不一定和你Add添加的先后顺序保持一致!