C# 字典应用
using System;using System.Collections.Generic;class Program{static void Main(){// 创建一个字典,键是字符串类型,值是整数类型Dictionary<string, int> studentScores = new Dictionary<string, int>();// 向字典中添加键值对// 原理:字典使用哈希表实现,键通过哈希函数转换为哈希码,用于快速查找studentScores.Add("Alice", 85);studentScores.Add("Bob", 92);studentScores.Add("Charlie", 78);// 访问字典中的值// 原理:通过键的哈希码找到对应的桶,然后在桶中线性查找匹配的键Console.WriteLine($"Alice's score is {studentScores["Alice"]}");// 修改字典中的值// 原理:通过键找到对应的值,然后更新值studentScores["Alice"] = 88;Console.WriteLine($"Updated Alice's score to {studentScores["Alice"]}");// 检查字典中是否包含某个键// 原理:通过键的哈希码找到对应的桶,然后在桶中线性查找匹配的键,返回布尔值if (studentScores.ContainsKey("Bob")){Console.WriteLine("Bob's score is in the dictionary.");}// 遍历字典中的所有键值对// 原理:遍历字典的内部结构(通常是数组或链表数组),依次访问每个键值对Console.WriteLine("All student scores:");foreach (KeyValuePair<string, int> entry in studentScores){Console.WriteLine($"Student: {entry.Key}, Score: {entry.Value}");}// 尝试移除字典中的某个键值对// 原理:通过键找到对应的桶和项,然后从字典中删除该项studentScores.Remove("Charlie");// 检查并处理字典中不存在的键// 原理:通过键的哈希码找到对应的桶,然后在桶中线性查找匹配的键,如果找不到则抛出异常try{Console.WriteLine($"David's score is {studentScores["David"]}");}catch (KeyNotFoundException){Console.WriteLine("David's score is not in the dictionary.");}// 获取字典中键的集合和值的集合// 原理:字典维护了两个集合,一个用于键,一个用于值,直接返回这些集合的视图Console.WriteLine("Keys in the dictionary:");foreach (string key in studentScores.Keys){Console.WriteLine(key);}Console.WriteLine("Values in the dictionary:");foreach (int value in studentScores.Values){Console.WriteLine(value);}}}
案例应用:
using System;
using System.Collections.Generic;class Program
{static void Main(){// 创建一个字符串数组,模拟班级中的名字列表string[] names = { "Alice", "Bob", "Alice", "Charlie", "Bob", "David", "Alice" };// 创建一个字典,用于存储名字和对应的出现次数// 键(Key)是名字,值(Value)是该名字出现的次数Dictionary<string, int> nameCounts = new Dictionary<string, int>();// 遍历名字数组foreach (string name in names){// 检查字典中是否已包含当前名字if (nameCounts.ContainsKey(name)){// 如果包含,则将当前名字对应的值(出现次数)加1nameCounts[name]++;}else{// 如果不包含,则将当前名字添加到字典中,并将值(出现次数)设置为1nameCounts[name] = 1;}}// 遍历字典,输出每个名字及其出现的次数foreach (KeyValuePair<string, int> entry in nameCounts){Console.WriteLine($"{entry.Key}: {entry.Value}");}}
}
另外,如果字典中可能有多个键对应相同的值,并且你需要找到所有这些键,那么你需要遍历整个字典并收集所有匹配的键。这可以通过使用 List<T> 或其他集合类型来实现。
List<string> keysFound = nameCounts.Where(kvp => kvp.Value == valueToFind).Select(kvp => kvp.Key).ToList();
if (keysFound.Any())
{
Console.WriteLine($"Found keys for value {valueToFind}: {string.Join(", ", keysFound)}");
}
else
{
Console.WriteLine($"No keys found for value {valueToFind}.");
}
相关文章:
C# 字典应用
using System;using System.Collections.Generic;class Program{static void Main(){// 创建一个字典,键是字符串类型,值是整数类型Dictionary<string, int> studentScores new Dictionary<string, int>();// 向字典中添加键值对// 原理&am…...
CDH安装与配置及相关大数据组件实践
CDH安装与配置及相关大数据组件实践 一、CDH 介绍 CDH(Cloudera’s Distribution Including Apache Hadoop)是一个基于 Web 用户界面的大数据平台版本。它支持大多数 Hadoop 组件,包括 HDFS、MapReduce、Hive、Pig、HBase、Zookeeper、Sqoo…...

fastapi 调用ollama之下的sqlcoder模式进行对话操作数据库
from fastapi import FastAPI, HTTPException, Request from pydantic import BaseModel import ollama import mysql.connector from mysql.connector.cursor import MySQLCursor import jsonapp FastAPI()# 数据库连接配置 DB_CONFIG {"database": "web&quo…...
YOLO系列基础(六)YOLOv1原理详解,清晰明了!
系列文章地址 YOLO系列基础(一)卷积神经网络原理详解与基础层级结构说明-CSDN博客 YOLO系列基础(二)Bottleneck瓶颈层原理详解-CSDN博客 YOLO系列基础(三)从ResNet残差网络到C3层-CSDN博客 YOLO系列基础…...

LeetCode100之环形链表(141)--Java
1.问题描述 给你一个链表的头节点 head ,判断链表中是否有环 示例1 输入:head [3,2,0,-4], pos 1 输出:true 解释:链表中有一个环,其尾部连接到第二个节点 示例2 输入:head [1,2], pos 0 输出…...

【ict基础软件赛道】真题-50%openEuler
以下哪个命令可用于查看当前shell的后台任务在openeuler中哪个符号用于创建后台执行进程在openeuler中使用哪个命令查看软件包的详细信息在openeuler中如果想要查看本机的主机名可以使用下面哪个命令在openeuler中使用的包管理器是在openeuler系统中要配置防火墙以允许ssh连接应…...

<AI 学习> 下载 Stable Diffusions via Windows OS
注意: 不能使用 网络路径 不再支持 HTTPS 登录,需要 Token 1. 获得合法的授权 Stability AI License — Stability AI 上面的链接打开,去申请 许可 2. 拥有 HuggingFace 账号 注册:https://huggingface.co/ 3. 配置 Tok…...

计算机图形学在游戏开发中的应用
💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 计算机图形学在游戏开发中的应用 引言 计算机图形学的基本概念…...

【CubeMX-HAL库】STM32H743II——SDRAM配置所遇问题
推荐的博客和视频: 1、【CubeMX-HAL库】STM32H743—FMC配置SDRAM_stm32h743 sdram 速度-CSDN博客 2、【【STM32CubeMX教程】STM32全外设原理、配置和常用HAL、LL库API使用详解】 3、在百度网盘里有STM32H743的例程:【通过网盘分享的文件:S…...
mac上使用docker搭建gitlab
在 Mac 上搭建 GitLab 可以使用 Docker 来简化安装过程 一、安装详细步骤 1. 安装 Docker 如果你尚未安装 Docker,可以通过以下步骤安装: 下载并安装 Docker Desktop for Mac.安装完成后,启动 Docker Desktop,确保 Docker 运行…...

二维数组操作
代码结构 main.c #include <stdio.h> #include <stdlib.h>#define LEN 100int main() {//通过指针引用多维数组# if 1//定义多维数组int a[3][5] {{1,2,3,4}, {5,6,7,8}, {9,10,11,12}};int row sizeof(a) /sizeof(a[0]);int colum sizeof(a[0]) / sizeof(a[0…...

uniapp设置tabBar高斯模糊并设置tabBar高度占位
1、设置tabBar高斯模糊 2、设置tabBar高度占位 (1)需要先在App.vue中获取一下 uni.getSystemInfoSync().windowBottom; //返回值是tabBar的高度(2)在app.vue中定义一个全局样式 3、在需要的页面底部,加上一个view&…...

上市公司代理成本数据大全(第一类和第二类代理成本均有)1991-2023年
一、计算方式: (1) 第一类代理成本 AC1:经营费用率,参考顶刊《管理世界》李文贵和余明桂(2015)老师的研究构建代理成本 AC2:管理费用率,参考C刊《经济管理》彭雅哲和汪昌云(2021) 老师的研究构建代理成本 AC3:资产周转…...
CA-Markov模型概述及其MATLAB实现
CA-Markov模型概述及其MATLAB实现 1 Markov模型2 CA-Markov模型2.1 元胞自动机(Cellular Aumatomata, 简称CA)2.1.1 构成2.2 准确度评估(Accuracy assessment)2.2.1 Kappa coefficient参考1.参考文献2.其它参考资料1 Markov模型 Markov模型是一种数学模型,用于描述系统在不…...

《生成式 AI》课程 第3講 CODE TASK执行文章摘要的机器人
课程 《生成式 AI》课程 第3講:訓練不了人工智慧嗎?你可以訓練你自己-CSDN博客 任务1:总结 1.我们希望你创建一个可以执行文章摘要的机器人。 2.设计一个提示符,使语言模型能够对文章进行总结。 model: gpt-4o-mini,#gpt-3.5-turbo, import…...

HCIP-HarmonyOS Application Developer 习题(二十二)
1、用户将手机导航迁移至智能手表之后,智能手表如果需要获取手机传过来的数据,从下列哪个方法中获取? A、onCompleteContinuation() B、onStartContinuation() C、onRestoreData() D、onSaveData() 答案:C 分析:FA发起迁移后&am…...
c++原型模式(Prototype Pattern)
原型模式(Prototype Pattern) 原型模式是一种创建型设计模式,它允许你通过复制现有对象来创建新的对象,而不是通过类实例化来创建对象。这种模式在开发时需要大量类似对象的情况下非常有用。原型模式的核心是一个具有克隆方法的接…...
联通大数据面试题及参考答案
Flink 是怎么使用的? Flink 是一个分布式流批一体的开源平台,以下是其一般使用步骤及相关要点: 环境搭建 首先要根据需求选择合适的部署模式,比如本地模式用于开发测试,集群模式(如 Standalone、YARN、Kubernetes 等)用于生产环境。安装相应的 JDK 版本(Flink 基于 Ja…...
MySQL数据库:SQL语言入门 【3】(学习笔记)
目录 5,TCL —— 事务控制语言(Transaction Control Language) (1)事务的概念作用 (2)事务的特性 【1】原子性 【2】一致性 【3】隔离性 【4】持久性 (3)并发事务带来…...

uniapp 实现tabbar分类导航及滚动联动效果
思路:使用两个scroll-view,tabbar分类导航使用scrollleft移动,内容联动使用页面滚动onPageScroll监听滚动高度 效果图 <template><view class"content" ><view :class"[isSticky ? tab-sticky: ]">…...
浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)
✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义(Task Definition&…...
解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错
出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上,所以报错,到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本,cu、torch、cp 的版本一定要对…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

Linux --进程控制
本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
快刀集(1): 一刀斩断视频片头广告
一刀流:用一个简单脚本,秒杀视频片头广告,还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农,平时写代码之余看看电影、补补片,是再正常不过的事。 电影嘛,要沉浸,…...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障
关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

通过MicroSip配置自己的freeswitch服务器进行调试记录
之前用docker安装的freeswitch的,启动是正常的, 但用下面的Microsip连接不上 主要原因有可能一下几个 1、通过下面命令可以看 [rootlocalhost default]# docker exec -it freeswitch fs_cli -x "sofia status profile internal"Name …...
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南
在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...
前端调试HTTP状态码
1xx(信息类状态码) 这类状态码表示临时响应,需要客户端继续处理请求。 100 Continue 服务器已收到请求的初始部分,客户端应继续发送剩余部分。 2xx(成功类状态码) 表示请求已成功被服务器接收、理解并处…...