当前位置: 首页 > news >正文

C# —— 字典

简介

字典: 包含一个key(键)和这个key所对应的value(值),字典是无序的,key是唯一的,可以根据key获取值。可以吧键当成数组的索引值进行理解

<> 泛型
定义一个字典 new Dictionary<key的类型, value值的类型>()

var dic = new Dictionary<string, string>();
dic.Add("name", "刘总");// add() 方法添加键值对 键为name值为 值为刘总
dic.Add("age", "20");// 添加一个元素 键为age 值为20

遍历字典

            keys 获取字典当中所有的key
            dic keys.ToArray() 把所有的key转成数组的结果

Console.WriteLine(string.Join(",",dic.Keys.ToArray()));

dic.Values.ToArray() 把所有的值转成数组

Console.WriteLine(string.Join(",",dic.Values.ToArray()));

移除字典

 dic.Remove("name");//移除制定key的方法
            是否包含 key 如果包含了返回true

Console.WriteLine(dic.ContainsKey("name")); 

把所有的key转成数组再进行遍历

for(int i=0; i < dic.Keys.ToArray().Length;i++)
{Console.WriteLine(dic.Keys.ToArray()[i]);
}

获取字典值

Console.WriteLine(dic["name"]);

使用字典实现统计元素出现次数以及最大次数

key 是出现元素 如果6
value 存放出现的次数 4次

ArrayList aa = new ArrayList() { 1, 1, 1, 2, 2, 3,456, 66, 6, 6, 6, 6, };
var dic1 = new Dictionary<int, int>();//定义一个字典 ,向字典里添加元素和次数

 遍历数组 v就是数组的每一个元素

foreach (int v in aa)
{if (dic1.ContainsKey(v)) // 先判断字典里存在不存在当前key 字典里面已经存在相同的key 值加1{dic1[v] += 1;}else // 字典不存在key key存在字典中并且次数为1 给字典添加键值对 键时v值为1{dic1.Add(v, 1);}
}
Console.WriteLine(string.Join(",",dic1.Values.ToArray()));
Console.WriteLine(string.Join(",",dic1.Keys.ToArray()));
int maxV = dic1.Keys.ToArray()[0]; // 初始默认出现元素为数组的索引值为0
int maxCount = dic1.Values.ToArray()[0];//初始化最大次数为values当中第一个for (int i = 0; i < dic1.Values.Count; i++)
{// dic1.Values.ToArray()转成数组// [i]数组当中的元素 出现的次数if (maxCount <= dic1.Values.ToArray()[i]){maxCount = dic1.Values.ToArray()[i];maxV = dic1.Keys.ToArray()[i];}
}
Console.WriteLine(maxV+"出现了,出现了最大次数为:"+maxCount);

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 情系端午,爱暖精诚 | 我院开展温情献礼端午慰问活动
  • MongoDB入门与实践
  • 【串口通信-USART】
  • Vue I18n国际化插件
  • 数据库 |试卷1试卷2
  • python 数据清洗基础教程
  • 19、架构-虚拟化容器
  • Trees Grass Rocks Enviroment Pack
  • 深度理解微信小程序技术架构:从前端到后台
  • 第6天:表单处理与验证
  • 正则表达式常用表示
  • 高等数学笔记(二):极限
  • 京东618 :AI总裁数字人、京东Apple Vision Pro版亮相
  • Vue 3 + Vite项目实战:常见问题与解决方案全解析
  • 为什么要选择华为 HCIE-Security 课程?
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 30秒的PHP代码片段(1)数组 - Array
  • android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码...
  • ES6核心特性
  • go append函数以及写入
  • Java读取Properties文件的六种方法
  • java正则表式的使用
  • laravel5.5 视图共享数据
  • Magento 1.x 中文订单打印乱码
  • Making An Indicator With Pure CSS
  • Mysql数据库的条件查询语句
  • nodejs:开发并发布一个nodejs包
  • orm2 中文文档 3.1 模型属性
  • spring boot 整合mybatis 无法输出sql的问题
  • spring cloud gateway 源码解析(4)跨域问题处理
  • ubuntu 下nginx安装 并支持https协议
  • 代理模式
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 排序算法之--选择排序
  • 深度学习入门:10门免费线上课程推荐
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 试着探索高并发下的系统架构面貌
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 我看到的前端
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • python最赚钱的4个方向,你最心动的是哪个?
  • 我们雇佣了一只大猴子...
  • # 详解 JS 中的事件循环、宏/微任务、Primise对象、定时器函数,以及其在工作中的应用和注意事项
  • #Js篇:单线程模式同步任务异步任务任务队列事件循环setTimeout() setInterval()
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • #pragma pack(1)
  • $$$$GB2312-80区位编码表$$$$
  • (09)Hive——CTE 公共表达式
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (HAL库版)freeRTOS移植STMF103
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • (ZT)北大教授朱青生给学生的一封信:大学,更是一个科学的保证
  • (备忘)Java Map 遍历
  • (超详细)语音信号处理之特征提取