尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Visual Studio中的字典

Visual Studio中的字典
📅 发布时间:2026/6/20 14:47:09

目录

一、核心说明

二、基本模板

三、常用代码示例

四、常用方法与属性

五、注意事项

六、案例实践


一、核心说明

  • 定义:Dictionary<TKey, TValue>是泛型集合,存储无序的键值对,键(Key)唯一,值(Value)可重复。
  • 特点:键不能为null(除非TKey是可空类型),值可以为null。

二、基本模板

using System.Collections.Generic;

// 声明字典

Dictionary<TKey, TValue> dict = new Dictionary<TKey, TValue>();

// 示例:键为字符串,值为整数

Dictionary<string, int> studentScores = new Dictionary<string, int>();

三、常用代码示例

1. 添加元素

studentScores.Add("Alice", 95);

studentScores.Add("Bob", 88);

2. 访问元素(直接索引,键不存在时抛出异常)

int aliceScore = studentScores["Alice"];// 95

3. 安全访问(推荐用 TryGetValue)

if (studentScores.TryGetValue("Charlie", out int charlieScore))

{

Console.WriteLine($"Charlie's score: {charlieScore}");

}

else

{

Console.WriteLine("Charlie not found.");

}

4. 修改值

studentScores["Bob"] = 90;// Bob的分数改为90

5. 遍历字典

foreach (KeyValuePair<string, int> pair in studentScores)

{

Console.WriteLine($"{pair.Key}: {pair.Value}");

}

6. 删除元素

studentScores.Remove("Alice");// 删除键为Alice的项

四、常用方法与属性

方法 / 属性作业
Add(TKey, TValue)添加键值对,键已存在时抛出ArgumentException。
Remove(TKey)删除指定键的项,返回是否成功。
ContainsKey(TKey)检查是否包含指定键。
TryGetValue(TKey, out TValue)尝试获取值,避免键不存在时抛出异常。
Clear()清空所有项。
Count获取键值对数量。
Keys获取所有键的集合(ICollection<TKey>)。
Values获取所有值的集合(ICollection<TValue>)

五、注意事项

  • 键的唯一性:添加重复键会抛出异常,建议先通过ContainsKey检查或使用TryAdd: studentScores.TryAdd("Alice",95);//键已存在时返回false,不抛出异常
  • 性能优化:初始化时指定容量(如new Dictionary<int, string>(100))可减少扩容开销。
  • 遍历顺序:字典是无序集合,遍历顺序不保证与添加顺序一致。若需有序,可使用SortedDictionary<TKey, TValue>。
  • 线程安全:非线程安全。

六、案例实践

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

static void Main(string[] args)
{
List<int> count = new List<int>
{
1,2,3,4,5,6,5,4,3,2,1,1,1,1,7,8,9,10
};

Dictionary<int,int> dic = new Dictionary<int, int>();

foreach (int i in count)//统计各个元素出现的次数
{
if (dic.ContainsKey(i))
{
dic[i]++;
}
else
{
dic[i] = 1;
}
}

int maxCount = 0;//出现次数最多元素的出现次数
int maxShu = count[0];//出现次数最多的元素

foreach (var item in dic)//找出该元素
{
if (item.Value > maxCount)
{
maxCount = item.Value;
maxShu = item.Key;
}
}

Console.WriteLine(" 统计结果为:");
foreach (var t in dic)
{
Console.WriteLine($"{t.Key } 出现了 {t.Value} 次");
}
Console.WriteLine($"出现次数最多的元素为:{maxShu},出现了 {maxCount} 次");

Console.ReadKey();
}

相关新闻

  • 滚动轴承性能退化表征/剩余使用寿命(相关性、单调性和鲁棒性)附Matlab代码
  • Visual Studio中的冒泡排序和选择排序
  • Python林业资源开发管理系统设计与实现1_2595688s--pycharm Vue django flask项目源码

最新新闻

  • 首饰寄卖频频踩坑?福州持证回收门店当面交易守住货品安全 - 讯息早知道
  • 2026扬州高端全屋定制进口板材授权持证门店深度盘点 - 设计本
  • 2026南京贵金属回收行情白皮书,足金 K 金统一按实时金价结算 - 讯息早知道
  • 2026年6月最新万国中国官方售后服务电话网点及客服中心地址 - 亨得利官方服务中心
  • 2026 年十堰市厨卫屋顶地下室防水修缮三家横向测评:吉修匠 99.8 分五星榜首 - 吉修匠
  • 2026年6月最新宇舶中国官方售后电话网点地址及客户服务热线 - 亨得利官方服务中心

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号