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

C#中的Dictionary

Dictionary<TKey, TValue> 是一个泛型集合,它存储键值对(key-value pairs),其中每个键(key)都是唯一的。这个集合类提供了快速的数据插入和检索功能,因为它是基于哈希表实现的。

注意 key不能重复,如果key重复了,系统就会报错

  1. 泛型Dictionary 是泛型集合,这意味着你可以指定存储在字典中的键和值的数据类型。例如,Dictionary<string, int> 表示键是字符串类型,值是整数类型。

  2. 添加元素:使用 Add 方法或索引器来添加键值对。如果键已经存在,Add 方法会更新对应的值。

    Dictionary<string, int> scores = new Dictionary<string, int>();
    scores.Add("Alice", 90);
    scores["Bob"] = 85; // 使用索引器添加或更新
  3. 检索元素:使用索引器通过键来检索值。

    复制
    int aliceScore = scores["Alice"];
  4. 检查键是否存在:使用 ContainsKey 方法来检查字典中是否存在特定的键。

    if (scores.ContainsKey("Alice"))
    {Console.WriteLine("Alice is in the dictionary.");
    }
  5. 遍历字典:可以使用 foreach 循环遍历字典中的所有键值对。

    foreach (KeyValuePair<string, int> kvp in scores)
    {Console.WriteLine($"Name: {kvp.Key}, Score: {kvp.Value}");
    }
  6. 移除元素:使用 Remove 方法来移除键值对。如果键不存在,Remove 方法会返回 false

    scores.Remove("Alice");
  7. 获取键和值的集合:可以使用 KeysValues 属性来获取字典中所有键和值的集合。

    IEnumerable<string> keys = scores.Keys;
    IEnumerable<int> values = scores.Values;
  8. 获取元素数量:使用 Count 属性来获取字典中元素的数量。

    int count = scores.Count;
  9. 清空字典:使用 Clear 方法来移除字典中的所有元素。

    scores.Clear();
  10. TryGetValue 方法:尝试获取与指定键相关联的值,如果键存在,返回 true 并输出值;如果不存在,返回 false

    int value;
    if (scores.TryGetValue("Alice", out value))
    {Console.WriteLine($"Alice's score is {value}.");
    }
    else
    {Console.WriteLine("Alice is not in the dictionary.");
    }

注意 Dictionary的使用索引器查找元素的时候 和数组不一样 不是从0开始 而是根据你添加的tkey寻找

http://www.lryc.cn/news/397326.html

相关文章:

  • VSCode中多行文本的快速前后缩进
  • C# 8.0 新语法的学习和使用
  • 数据结构——约瑟夫环C语言链表实现
  • 【MyBatis】——入门基础知识必会内容
  • react父调用子的方法,子调用父的方法
  • C#知识|账号管理系统:UI层-添加账号窗体设计思路及流程。
  • 【机器学习】初学者经典案例(随记)
  • 进阶版智能家居系统Demo[C#]:整合AI和自动化
  • IC后端设计中的shrink系数设置方法
  • 在NVIDIA Jetson平台离线部署大模型
  • 51单片机嵌入式开发:8、 STC89C52RC 操作LCD1602原理
  • 数字化时代的供应链管理综合解决方案
  • CentOS 安装 annie/lux,以及 annie/lux 的使用
  • 拥抱UniHttp,规范Http接口对接之旅
  • Python 给存入 Redis 的键值对设置过期时间
  • 在linux中安装docker
  • 【JVM-04】线上CPU100%
  • try catch 解决大问题
  • 手动解析Collection
  • list模拟实现【C++】
  • nginx正向代理、反向代理、负载均衡
  • matlab 有倾斜的椭圆函数图像绘制
  • PTK是如何加密WLAN单播数据帧的?
  • Django之登录权限系统
  • rust way step 1
  • 视觉语言模型导论:这篇论文能成为你进军VLM的第一步
  • Postman工具基本使用
  • uni-app三部曲之三: 路由拦截
  • 专注于国产FPGA芯片研发的异格技术Pre-A+轮融资,博将控股再次投资
  • 【python】QWidget父子关系,控件显示优先级原理剖析与应用实战演练