C# —— 字典

简介

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

<> 泛型

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

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

遍历字典

keys 获取字典当中所有的key

dic keys.ToArray() 把所有的key转成数组的结果

cs 复制代码
Console.WriteLine(string.Join(",",dic.Keys.ToArray()));

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

cs 复制代码
Console.WriteLine(string.Join(",",dic.Values.ToArray()));

移除字典

dic.Remove("name");//移除制定key的方法

是否包含 key 如果包含了返回true

cs 复制代码
Console.WriteLine(dic.ContainsKey("name")); 

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

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

获取字典值

cs 复制代码
Console.WriteLine(dic["name"]);

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

key 是出现元素 如果6

value 存放出现的次数 4次

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

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

cs 复制代码
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);
相关推荐
晊晌_h9 小时前
嵌入式从0到精通——数据结构总结[特殊字符]
数据结构·算法·排序算法
geovindu9 小时前
CSharp: 万年历
开发语言·后端·c#·.net
我找到地球的支点啦10 小时前
Matlab系列(009) 一CRC循环冗余校验详解
开发语言·数据结构·算法·matlab·信息与通信
lisin-lee-cooper15 小时前
【leetcode658】有序数组找出k个最接近x的数
java·数据结构·算法
sunburn-15 小时前
Java堆(Heap)详解与实战教学
java·开发语言·数据结构·ide·算法
离陌在学C#16 小时前
C# 异步编程:从 async/await 到 Task 实战指南
开发语言·数据库·c#
哭泣方源炼蛊17 小时前
并查集进阶 P1(带权并查集,并查集分类)
数据结构·c++·算法·二进制·带权并查集
五_谷_丰_登18 小时前
平衡二叉树(AVL)讲解二
数据结构·c++
fpcc19 小时前
数据结构和算法—最短路径的算法
数据结构·算法
Mr. zhihao20 小时前
从数组到 B+ 树:一棵树的进化史
数据结构·innodb·b+树