当前位置: 首页 > 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);

相关文章:

  • 2024/6/19 英语每日一段
  • 造梦者马斯克
  • 聚观早报 | 小米15配置规格曝光;比亚迪车险开售
  • C++ 设计模式
  • 华为OD刷题C卷 - 每日刷题37(CPU算力分配,API集群负载统计)
  • centos中安装并设置vsftpd
  • 摄像头数据分别传入两个bram中 Verilog代码
  • A45 STM32_HAL库函数 之 SMARTCARD通用驱动 -- A -- 所有函数的介绍及使用
  • git使用摘樱桃的方式,实现特定需求进行提交合并
  • SpringBoot接入RS-232串口通讯实现数据交互
  • ORA-12560: TNS:协议适配器错误
  • java遇到问题 不行就 重启项目 清理缓存 在别人电脑试试
  • MySQL常见面试题自测
  • 062、Python 解决命名冲突的两种方式
  • 游戏心理学Day18
  • Rocketmq的坑又来了
  • 全网最全 Kimi 使用手册,看完 Kimi 效率提升 80%
  • 持续总结中!2024年面试必问 20 道设计模式面试题(三)
  • 我用chatgpt写了一款程序
  • 算法训练营day51
  • 综艺还有怎样的新可能?挖掘小众文化领域
  • 高龄老人骨折后,生死可能就在家属一念之间
  • 东方红资管官宣:41岁原国信资管董事长成飞出任新总经理
  • 越怕出错越会出错,“墨菲定律”的魔咒该怎么破?
  • “仓促、有限”,美英公布贸易协议框架,两国分别获得了什么?
  • 国博馆刊|北朝至唐初夏州酋豪李氏家族的发展与身份记忆