news 2026/1/25 14:42:34

Visual Studio中的字典

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Visual Studio中的字典

目录

一、核心说明

二、基本模板

三、常用代码示例

四、常用方法与属性

五、注意事项

六、案例实践


一、核心说明

  • 定义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();
}

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/16 0:21:27

广义回归神经网络和概率神经网络分类(GRNN Vs PNN)附Matlab代码

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f34e; 往期回顾关注个人主页&#xff1a;Matlab科研工作室&#x1f34a;个人信条&#xff1a;格物致知,完整Matlab代码获取及仿真…

作者头像 李华
网站建设 2026/1/18 22:40:12

上海AI实验室发布Chem-R:让AI像化学家一样思考的革命性突破

当人工智能遇到化学实验室&#xff0c;会碰撞出怎样的火花&#xff1f;上海AI实验室的研究团队最近发布了一项令人兴奋的研究成果&#xff0c;他们开发出了一个名为Chem-R的AI模型&#xff0c;这个模型能够像真正的化学家一样进行化学推理。这项研究由上海AI实验室联合复旦大学…

作者头像 李华
网站建设 2025/12/24 11:59:07

Vue时间轴组件完整指南:从零开始构建精美时间线

Vue时间轴组件完整指南&#xff1a;从零开始构建精美时间线 【免费下载链接】timeline-vuejs Minimalist Timeline ⏳ with VueJS &#x1f49a; 项目地址: https://gitcode.com/gh_mirrors/ti/timeline-vuejs timeline-vuejs是一款专为Vue.js设计的轻量级时间轴组件&am…

作者头像 李华
网站建设 2026/1/22 12:34:49

Wan2.2-T2V-A14B支持多语言文本生成视频?实测效果曝光

Wan2.2-T2V-A14B支持多语言文本生成视频&#xff1f;实测效果曝光 在短视频内容爆炸式增长的今天&#xff0c;一个品牌要维持社交媒体热度&#xff0c;可能需要每天产出数十条定制化视频&#xff1b;一部电影的前期预演&#xff0c;往往得靠美术团队手绘上百张分镜。这些传统流…

作者头像 李华
网站建设 2026/1/11 13:54:50

HunyuanVideo-Foley项目在GitHub上的diskinfo下载官网数据统计分析

HunyuanVideo-Foley 项目 GitHub 下载行为与智能音效生成技术深度解析 在短视频日活突破十亿、AIGC 内容生产链高速演进的今天&#xff0c;一个看似不起眼却极具潜力的技术方向正在悄然崛起——自动音效生成。无论是 UP 主剪辑 Vlog 时为脚步声补上合适的“哒哒”回响&#xff…

作者头像 李华
网站建设 2026/1/16 5:12:21

贪心算法:用局部最优解迈向全局最优的艺术

贪心算法&#xff1a;用局部最优解迈向全局最优的艺术什么是贪心算法&#xff1f;贪心算法&#xff08;Greedy Algorithm&#xff09;是一种在每一步选择中都采取在当前状态下最好或最优的选择&#xff0c;从而希望导致结果是全局最好或最优的算法策略。它不像动态规划那样考虑…

作者头像 李华