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);

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

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

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

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

{

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

}

else

{

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

}

  1. 修改值

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

  1. 遍历字典

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

{

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

}

  1. 删除元素

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();

}

相关推荐
△曉風殘月〆8 分钟前
一文带你掌握Visual Studio中集成的git功能
git·visual studio
xiaotao13114 分钟前
阶段零:IDE选择 与 Jupyter Notebook / Lab 使用
ide·人工智能·python·jupyter
智者知已应修善业16 分钟前
【CD4022八进制计数器脉冲分配器】2023-5-31
驱动开发·经验分享·笔记·硬件架构·硬件工程
青葱味奶糖43 分钟前
管理学之深度管理21法则--笔记2
笔记·深度管理·陈浩老师
꯭爿꯭巎꯭1 小时前
visual studio code (vscode)下载
ide·vscode·编辑器
范什么特西1 小时前
MyEclipse8.5配置
java·ide·myeclipse
m0_716765231 小时前
数据结构--顺序表的插入、删除、查找详解
c语言·开发语言·数据结构·c++·学习·算法·visual studio
Thomas21431 小时前
skill分享 iterm2 jupyter jumpserver
ide·python·jupyter
qq_454245031 小时前
图数据标准化与智能去重框架:设计与实现解析
数据结构·架构·c#·图论
农村小镇哥1 小时前
Html的字体+字符编码+图片标签
chrome·笔记·html