【C#】键值对的一种常见数据结构Dictionary<TKey, TValue>
在 C# 中,Dictionary<TKey, TValue>
是一个 键值对(key-value)集合,是一种非常常见的数据结构。它允许通过 键(key
)来快速查找与之相关的 值(value
)。你可以将其类比为一个映射(map)或者是一个关联数组,常用于存储一对一的关联数据。
1. Dictionary 基本概念
- 键(Key):唯一的标识符,通常是用来检索对应值的。键必须是唯一的,也就是说,同一个字典中不能有两个相同的键。
- 值(Value):与某个键相关联的数据。多个键可以映射到相同的值,但一个键只能映射到一个值。
2. Dictionary<string, int> 解释
在 Dictionary<string, int>
中:
string
是 键(Key) 的类型,表示键是一个字符串("Pn000"
、"Pn001"
等)。int
是 值(Value) 的类型,表示与每个键关联的值是整数(例如 195、4386 等)。
3. 如何使用 Dictionary<string, int>
创建字典
Dictionary<string, int> myDictionary = new Dictionary<string, int>();
添加键值对
myDictionary.Add("Pn000", 195);
myDictionary.Add("Pn001", 438);
myDictionary.Add("Pn002", 1665);
访问字典中的值
通过键来获取值:
int value = myDictionary["Pn000"]; // 返回 195
Console.WriteLine(value);
修改字典中的值
可以直接通过键修改值:
myDictionary["Pn000"] = 999; // 更新 "Pn000" 对应的值为 999
检查键是否存在
在访问字典的值之前,最好检查键是否存在,以避免抛出异常:
if (myDictionary.ContainsKey("Pn000"))
{int value = myDictionary["Pn000"];Console.WriteLine(value);
}
遍历字典
你可以使用 foreach
循环遍历字典中的所有键值对:
foreach (var kvp in myDictionary)
{Console.WriteLine($"Key: {kvp.Key}, Value: {kvp.Value}");
}
4. 常见用法
- 查找某个值:可以通过键来快速查找值,因为字典是通过哈希表(HashTable)实现的,查找操作的时间复杂度是 O(1),即常数时间。
- 计数器:字典经常用于实现计数器功能,例如统计一组数据中每个元素出现的次数。
Dictionary<string, int> wordCount = new Dictionary<string, int>();
foreach (string word in words)
{if (wordCount.ContainsKey(word)){wordCount[word]++;}else{wordCount[word] = 1;}
}
5. 字典的优点
- 快速查找:字典通过哈希表实现,能够非常快速地根据键查找对应的值。
- 灵活的键值对存储:字典可以存储任何类型的对象作为键和值,只要键是唯一的。
6. 小结
Dictionary<string, int>
是一种非常有用的数据结构,用于存储和快速查找键值对。在实际编程中,我们常常使用字典来存储配置项、计数数据、映射关系等信息。
相关文章:

【C#】键值对的一种常见数据结构Dictionary<TKey, TValue>
在 C# 中,Dictionary<TKey, TValue> 是一个 键值对(key-value)集合,是一种非常常见的数据结构。它允许通过 键(key)来快速查找与之相关的 值(value)。你可以将其类比为一个映射…...

SQL Server:调用的目标发生了异常。(mscorlib)
我之前安装的SQL Server是2014版本,SSMS运行也很流畅,有一次有个同事让我链接云服务器SQL地址,直接报上图的错误,把我弄的一愣一愣的。 后面才发现,这是版本太低导致的,但是你如果使用Navicat是没有问题的…...

windows 上ffmpeg编译好的版本选择
1. Gyan.dev Gyan.dev 是一个广受信赖的 FFmpeg 预编译库提供者,提供多种版本的 FFmpeg,包括静态和动态链接版本。 下载链接: https://www.gyan.dev/ffmpeg/builds/ 特点: 提供最新稳定版和开发版。 支持静态和共享(动态&…...

前端工程化面试题(一)
如何使用 Docker 部署前端项目? 使用 Docker 部署前端项目通常涉及以下几个步骤: 创建项目:首先,需要在本地创建并配置好前端项目。 准备 Docker 文件: .dockerignore:这个文件用于排除不需要上传到 Dock…...

Java设计模式笔记(二)
十四、模版方法模式 1、介绍 1)模板方法模式(Template Method Pattern),又叫模板模式(Template Patern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需重写方法实现,但调用将以抽象类中定义的方式进行。 2&…...

vscode(一)安装(ubuntu20.04)
1、更新软件包列表 sudo apt update2、安装依赖包 sudo apt install software-properties-common apt-transport-https wget3、导入Microsoft GPG密钥 wget -q https://packages.microsoft.com/keys/microsoft.asc -O- | sudo apt-key add -4、向系统添加VSCode存储库 sudo…...

C# 命名空间(Namespace)
文章目录 前言一、命名空间的定义与使用基础(一)定义语法与规则(二)调用命名空间内元素 二、using 关键字三、嵌套命名空间 前言 命名空间(Namespace)在于提供一种清晰、高效的方式,将一组名称与…...

云计算介绍_3(计算虚拟化——cpu虚拟化、内存虚拟化、io虚拟化、常见集群策略、华为FC)
计算虚拟化 1.计算虚拟化介绍1.1 计算虚拟化 分类(cpu虚拟化、内存虚拟化、IO虚拟化)1.2 cpu虚拟化1.3 内存虚拟化1.4 IO虚拟化1.5 常见的集群的策略1.6 华为FC 1.计算虚拟化介绍 1.1 计算虚拟化 分类(cpu虚拟化、内存虚拟化、IO虚拟化&#…...

Flutter开发App,编译条件下UI没问题,打包后UI出现问题
刚入门Flutter3个月,终于进入项目打包阶段,发现之前编译环境下都正常的UI,忽然有小部分出现异常,不显示UI部分了。查了2个小时都没发现原因。因为编译环境下,Android、iOS端都正常显示。但是进入打包安装后,…...

Python+OpenCV系列:Python和OpenCV的结合和发展
PythonOpenCV系列:Python和OpenCV的结合和发展 **引言****Python语言的发展****1.1 Python的诞生与发展****1.2 Python的核心特性与优势****1.3 Python的应用领域** **OpenCV的发展****2.1 OpenCV的起源与发展****2.2 OpenCV的功能特性****2.3 OpenCV的应用场景** *…...

报错 JSON.parse: expected property name or ‘}‘,JSON数据中对象的key值不为字符串
报错 JSON.parse: expected property name or ‘}’ 原因 多是因为数据转换时出错,可能是存在单引号或者对象key值不为string导致 这里记录下我遇见的问题(后端给的JSON数据里,对象key值不为string) 现在后端转换JSON数据大多…...

Flutter:商品多规格内容总结,响应式数据,高亮切换显示。
如图所示: 代码为练习时写的项目,写的一般,功能实现了,等以后再来优化。 自己模拟的数据结构 var data {id:1,name:精品小米等多种五谷杂粮精品小等多种五谷杂粮,logo:https://cdn.uviewui.com/uview/swiper/1.jpg,price:100.5…...

WPF+LibVLC开发播放器-LibVLC播放控制
接上一篇: LibVLC在C#中的使用 实现LibVLC播放器播放控制 界面 界面上添加一个Button按钮用于控制播放 <ButtonGrid.Row"1"Width"88"Height"24"Margin"10,0,0,0"HorizontalAlignment"Left"VerticalAlignme…...

Mac环境下brew安装LNMP
安装不同版本PHP 在Mac环境下同时运行多个版本的PHP,同Linux环境一样,都是将后台运行的php-fpm设置为不同的端口号,下面将已php7.2 和 php7.4为例 添加 tap 目的:homebrew仅保留最近的php版本,可能没有你需要的版本…...

nodejs后端项目使用pm2部署
nodejs后端项目使用pm2部署 安装pm2 npm install pm2 -g查看版本号 pm2 --version启动项目 pm2 start app.js# 设置别名 pm2 start app.js --name demo停止项目 pm2 stop [AppName] pm2 stop [ID]# 停止所有项目 pm2 stop all重启项目 pm2 restart [AppName] pm2 re…...

【C++】深入理解字符变量取地址的特殊性与内存管理机制详解
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: C 文章目录 💯前言💯栈内存中的变量分配:谁先谁后?cout 的输出行为:按顺序执行,按地址递增读取代码执行顺序与内存布局的关系编译器优化的影响 &…...

【银河麒麟操作系统真实案例分享】内存黑洞导致服务器卡死分析全过程
了解更多银河麒麟操作系统全新产品,请点击访问 麒麟软件产品专区:https://product.kylinos.cn 开发者专区:https://developer.kylinos.cn 文档中心:https://documentkylinos.cn 现象描述 机房显示器连接服务器后黑屏ÿ…...

蓝桥杯软件赛系列---lesson1
🌈个人主页:羽晨同学 💫个人格言:“成为自己未来的主人~” 我们今天会再开一个系列,那就是蓝桥杯系列,我们会从最基础的开始讲起,大家想要备战明年蓝桥杯的,让我们一起加油。 工具安装 DevC…...

工业异常检测-CVPR2024-新的3D异常数据合成办法和自监督网络IMRNet
论文:https://arxiv.org/pdf/2311.14897v3.pdf 项目:https://github.com/chopper-233/anomaly-shapenet 这篇论文主要关注的是3D异常检测和定位,这是一个在工业质量检查中至关重要的任务。作者们提出了一种新的方法来合成3D异常数据&#x…...

HeidiSQL:MySQL图形化管理工具深度解析
本文还有配套的精品资源,点击获取 简介:HeidiSQL是一款开源的MySQL图形化管理工具,适用于多种数据库系统,如MySQL、MariaDB、SQL Server、PostgreSQL和SQLite。其提供的直观操作界面和丰富的功能简化了数据库操作,包…...

【Redis】深入解析Redis缓存机制:全面掌握缓存更新、穿透、雪崩与击穿的终极指南
文章目录 一、Redis缓存机制概述1.1 Redis缓存的基本原理1.2 常见的Redis缓存应用场景 二、缓存更新机制2.1 缓存更新的策略2.2 示例代码:主动更新缓存 三、缓存穿透3.1 缓存穿透的原因3.2 缓解缓存穿透的方法3.3 示例代码:使用布隆过滤器 四、缓存雪崩4…...

Flask使用Celery与多进程管理:优雅处理长时间任务与子进程终止技巧(multiprocessing)(subprocess)
在许多任务处理系统中,我们需要使用异步任务队列来处理繁重的计算或长时间运行的任务,如模型训练。Celery是一个广泛使用的分布式任务队列,而在某些任务中,尤其是涉及到调用独立脚本的场景中,我们需要混合使用multipro…...

【PyTorch】torch.distributed.elastic.multiprocessing.errors.ChildFailedError:
报错说明 torch.distributed.elastic.multiprocessing.errors.ChildFailedError: 报错如图所示 报错分析 该报错是 torch 和 CUDA 版本不兼容导致。 (一般N卡自带的CUDA版本与最新的torch版本相差较大) 解决方案 1.查看自己的CUDA版本 # 查看自己的…...

使用android studio写一个Android的远程通信软件(APP),有通讯的发送和接收消息界面
以下是使用 Android Studio 基于 Java 语言编写一个简单的 Android APP 实现远程通信(这里以 TCP 通信为例)的代码示例,包含基本的通信界面以及发送和接收消息功能。 1. 创建项目 打开 Android Studio,新建一个 Empty Activity …...

突破空间限制!从2D到3D:北大等开源Lift3D,助力精准具身智能操作!
文章链接:https://arxiv.org/pdf/2411.18623 项目链接:https://lift3d-web.github.io/ 亮点直击 提出了Lift3D,通过系统地提升隐式和显式的3D机器人表示,提升2D基础模型,构建一个3D操作策略。 对于隐式3D机器人表示&a…...

Android KEY的哪些事儿
目录 一、APK应用签名 1、什么是APK应用签名? 1.1 目的和作用? 1.2 长什么样子? 2、APK应用签名使用流程 步骤一:如何生成APK应用签名文件? 步骤二:如何集成APK应用签名文件? 步骤三&am…...

李宏毅深度学习-Pytorch Tutorial2
什么是张量? 张量(Tensor)是深度学习和机器学习中一个非常基础且重要的概念。在数学上,张量可以被看作是向量和矩阵的泛化。简单来说,张量是一种多维数组,它可以表示标量(0维)、向量…...

【译】为 SAP 表维护视图 (SM30) 创建选择屏幕
原文标题:Create Selection Screen for SAP Table Maintenance View (SM30) 原文链接: https://www.saphub.com/abap-dictionary/sap-abap-tmg-selection-screen/ 通常,带有单个屏幕的 SAP 表维护视图 (SM30) 会显示表中的所有记录ÿ…...

element Plus中 el-table表头宽度自适应,不换行
在工作中,使用el-table表格进行开发后,遇到了小屏幕显示器上显示表头文字会出现换行展示,比较影响美观,因此需要让表头的宽度变为不换行,且由内容自动撑开。 以下是作为工作记录,用于demo演示教程 先贴个…...

C语言程序设计P5-4【应用函数进行程序设计 | 第四节】——知识要点:数组作函数参数
知识要点:数组作函数参数 视频: 目录 一、任务分析 二、必备知识与理论 三、任务实施 一、任务分析 任务要求用选择法对数组中的 10 个整数按由小到大的顺序排序,前面在讲解数组时讲冒泡法排序曾提到选择法排序的思想。 所谓选择法就是…...

时间序列模型在LSTM中的特征输入
这里写目录标题 前言LSTM的输入组成时间步例子 实际代码解读特征提取处理成dataloader格式(用于输入到模型当中)对应到lstm的模型创建代码 总结 前言 本文章将帮助理解如何将一个时间序列的各种特征(年月日的时间特征,滚动窗口滞…...

Python_Flask02
所有人都不许学Java了,都来学Python! 如果不来学的话请网爆我的老师 连接前的准备 安装pymysql 和 flask_sqlalchemy,安装第三下面两个所需要的包才能连接上数据库 pip install pymysql pip install flask_sqlalchemy pymysql是一个Pyth…...

threejs相机辅助对象cameraHelper
为指定相机创建一个辅助对象,显示这个相机的视锥。 想要在场景里面显示相机的视锥,需要创建两个相机。 举个例子,场景中有个相机A,想要显示相机A的视锥,那么需要一个相机B,把B放在A的后面,两个…...

断点续传+测试方法完整示例
因为看不懂网上的断点续传案例,而且又不能直接复制使用,干脆自己想想写了一个。 上传入参类: import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProp…...

C#设计模式--状态模式(State Pattern)
状态模式是一种行为设计模式,它允许对象在其内部状态发生变化时改变其行为。这种模式的核心思想是将状态封装在独立的对象中,而不是将状态逻辑散布在整个程序中。 用途 简化复杂的条件逻辑:通过将不同的状态封装在不同的类中,可…...

Excel技巧:如何批量调整excel表格中的图片?
插入到excel表格中的图片大小不一,如何做到每张图片都完美的与单元格大小相同?并且能够根据单元格来改变大小?今天分享,excel表格里的图片如何批量调整大小。 方法如下: 点击表格中的一个图片,然后按住Ct…...

hadoop中导出表与数据的步骤
大家好,我是 V 哥。在Hadoop中导出表与数据,可以通过多种方式实现,包括使用Hive的EXPORT命令、MapReduce作业、Hive查询以及Sqoop工具。下面V 哥将详细介绍这些步骤和一些代码示例,来帮助大家更好理解。 1. 使用Hive的EXPORT命令…...

springBoot中的日志级别在哪里配置
在Spring Boot中,日志级别的配置可以通过多种方式来实现,主要包括在配置文件中设置、使用自定义的logback配置文件,以及在代码中动态配置等。以下是一些具体的配置方法: 一、在配置文件中设置日志级别 Spring Boot默认使用appli…...

17. Threejs案例-Three.js创建多个立方体
17. Threejs案例-Three.js创建多个立方体 实现效果 知识点 WebGLRenderer (WebGL渲染器) WebGLRenderer 是 Three.js 中用于渲染 WebGL 场景的核心类。它负责将场景中的对象渲染到画布上。 构造器 new THREE.WebGLRenderer(parameters) 参数类型描述parametersObject可选…...
数据结构——有序二叉树的删除
在上一篇博客中,我们介绍了有序二叉树的构建、遍历、查找。 数据结构——有序二叉树的构建&遍历&查找-CSDN博客文章浏览阅读707次,点赞18次,收藏6次。因为数据的类型决定数据在内存中的存储形式。left right示意为左右节点其类型也为…...

力扣1401. 圆和矩形是否有重叠
用矢量计算: class Solution { public:bool checkOverlap(int radius, int xCenter, int yCenter, int x1, int y1, int x2, int y2) {//矩形中心float Tx(float)(x1x2)/2;float Ty(float)(y1y2)/2;//强行进行对称操作,只考虑第一象限if(xCenter<Tx)…...

idea连接到docker出现 org.apache.hc.client5.http.ConnectTimeoutException 异常怎么办?
前情提要 我电脑是win11,我安装了centOS7虚拟机,配置linux环境 idea是2024社区免费版本 我就这一步步排查问题,终于发现了是因为我的2375端口没有ipv4开放,只在ipv6开放 踩坑提醒: 对了,一个一个问题排…...

一番赏小程序定制开发,打造全新抽赏体验平台
随着盲盒的热潮来袭,作为传统的潮玩方式一番赏也再次受到了大家的关注,市场热度不断上升! 一番赏能够让玩家百分百中奖,商品种类丰富、收藏价值高,拥有各种IP,从而吸引着各个圈子的粉丝玩家,用…...

PHP语法学习(第六天)
💡依照惯例,回顾一下昨天讲的内容 PHP语法学习(第五天)主要讲了PHP中的常量和运算符的运用。 🔥 想要学习更多PHP语法相关内容点击“PHP专栏” 今天给大家讲课的角色是🍍菠萝吹雪,“我菠萝吹雪吹的不是雪,而…...

按vue组件实例类型实现非侵入式国际化多语言翻译
#vue3##国际化##本地化##international# web界面国际化,I18N(Internationalization,国际化),I11L(International,英特纳雄耐尔),L10N(Localization,本地化)&…...

2024年认证杯SPSSPRO杯数学建模B题(第一阶段)神经外科手术的定位与导航解题全过程文档及程序
2024年认证杯SPSSPRO杯数学建模 B题 神经外科手术的定位与导航 原题再现: 人的大脑结构非常复杂,内部交织密布着神经和血管,所以在大脑内做手术具有非常高的精细和复杂程度。例如神经外科的肿瘤切除手术或血肿清除手术,通常需要…...

51c视觉~合集24
我自己的原文哦~ https://blog.51cto.com/whaosoft/11870494 #R-Adapter 零样本模型微调新突破,提升鲁棒性与泛化能力 论文提出新颖的Robust Adapter(R-Adapter),可以在微调零样本模型用于下游任务的同时解决这两个问题。该方…...

idea启动tomcat服务中文乱码
在idea中启动tomcat服务后部分中文乱码 但是在tomcat日志部分正常 并且在tomcat中中文也是正常 查询大量资料修改idea编码,虚拟机编码、tomcat默认编码、终端默认编码,统统没有效果。 最终发现修改tomcat下文件夹 .\conf\logging.properties 网络上…...

android studio 读写文件操作(应用场景二)
android studio版本:2023.3.1 patch2 例程:readtextviewIDsaveandread 本例程是个过渡例程,如果单是实现下图的目的有更简单的方法,但这个方法是下一步工作的基础,所以一定要做。 例程功能:将两个textvi…...

【数据结构】【线性表】特殊的线性表-字符串
目录 字符串的基本概念 字符串的三要素 字符串的基本概念 串的编码 串的实现及基本运算 顺序串的实现 串的静态数组实现 串的动态数组的实现 顺序存储的四种方案 链式串的实现 基本运算 方案三 方案一 字符串的基本概念 数据结构千千万,…...

全力搜救失联人员 加强各类隐患排查
新华社北京2月8日电题:全力搜救失联人员 加强各类隐患排查——各方贯彻落实习近平总书记重要指示切实保障人民群众生命财产安全新华社记者2月8日11时50分许,四川宜宾市筠连县沐爱镇金坪村发生山体滑坡,截至8日17时,已造成10户民房被掩埋、30余人失联。灾…...

警惕两面派的鬼伎俩(骗与拖)
两面派总是轻易许诺,但又把任何诺言都抛到九霄云外,只是一味高压,讲的是一套,做的又是一套。这些人们历来的手段就是善于“骗”和“拖”。这是历史的铁律!中国抗日战争时期,有人高挂“抗日”招牌,暗藏反共尖刀;…...

张志敏|打破封锁,中国AI与科技如何突出重围
在当今科技飞速发展的时代,AI技术已成为全球科技竞争的核心领域之一,而中国在这一赛道上的崛起,正逐渐改写着世界科技的格局。从Deep seek的崭露头角,到鸿蒙智行的砥砺前行,中国的科技创新力量正以锐不可当之势,向世界展示着自己的实力与决心。然而,在这一路的发展进程中…...

马斯克对联邦机构发起闪电战
最近特朗普除了不断对外搞事情,比如加关税、说要接管加沙,同时特朗普和马斯克还在大刀阔斧的搞内部裁员。这也是特朗普的竞选承诺之一,要精简政府和开支。但特朗普真正目的,是通过裁员来清除异己,攻击民主党以及美国深层政府,来更进一步掌控美国政府。显然,特朗普并没有…...

国家安全机关提醒:节后返岗,请牢记“四不”
蛇年春节假期结束,大家逐渐返回工作岗位。国家安全机关提醒,要时刻绷紧安全防范之弦,提高国家安全意识,返岗后牢记以下“四不”,共同筑牢国家安全防线,为新一年工作铺就坚实的安全基座。公共Wi-Fi不乱连春节假期返程途中,随处可见的公共Wi-Fi可以给我…...

秦安:特朗普“三板斧”遭遇滑铁卢,本质暴露,下一步中国是关键
张文木老师在“短评特朗普就职演说”中指出,“看人不能只看领带,不看口袋。手里没军队,口袋没银行,四年任期能干啥。只能自嗨!李逵三板斧,过后啥也没有”。特朗普其人,仗不敢打,钱想大赚,一上任就耀武扬威,没想到“24小…...