Dictionary < K , V > 字典
Dictionary < 键 , 值 > 字典
作用:用简单的类型,管理复杂的对象。
就和键盘一样,按下 键 就能得到对应的值。
跟飞机的乘客名单一样,一个名字对应一个人;跟饭店的菜单一样,点什么菜名就上什么菜。
键:就好比数组的下标,但是数组的下标只能是数字,而这个下标可以是任意值类型。一般用string和int的比较多
加载:
Dictionary < string , student >
Dictionary < string , student > stuDic=new Dictionary < string , student >();
stuDic.Add( "张三",student1);
stuDic.Add( "李四",student4);
stuDic.Add( "王五",student5);
取出:
student stu=stuDic["李四"];
值:这个就是对象。同样没有限制类型,一般以对象为主
List<student> 学生名单= List<student> ();
学生名单.Add(张三);
学生名单.Add(李四);
学生名单.Add(王五);
Dictionary < string , List<student> >
Dictionary < string , List<student> > 字典=new Dictionary < string , List<student> >();
字典.Add(["初一四班"],学生名单);
字典.Add(["初二三班"],学生名单);
获取对象
学生名单 obj = 字典["初一四班"];
键 遍历
foreach (string key in 字典.Keys)
{
Console.WriteLine(key);
}
键查询
.ContainsKey("张三");
值 遍历
//遍历集合values
foreach (Student item in 字典.Values)
{
Console.WriteLine(item.StudentId+"\t" + item.StudentName + "\t" + item.Age);
}
值转数组
List < student > slist = stus.Values.ToList();
.ToArray();
值是List<int>类型,可以求平均数
//计算所有班级的平均分数
foreach (string className in 字典.Keys)
{
Console.WriteLine($"{className} 平均分数:{字典[className].Average()}");
}
字典[className].Average()
先是从字典获取值对象。对象实际是List<int>的集合,可以求平均数。