C#中向Dictionary添加键值对的两种方式差异解析
C# Dictionary 两种操作键值对方式的核心区别
先看初始化代码:
Dictionary<int,int> dic = new Dictionary<int,int>();
下面是两种操作的具体差异:
1. 索引器赋值 dic[key] = value
- 逻辑:不管键是否存在都能执行——键不存在时新增键值对,键已存在时直接覆盖原有值,全程不会抛出异常。
- 示例:
dic[key] = value; dic[key] = value1; // 正常执行,value被value1替换
2. Add() 方法 dic.Add(key, value)
- 逻辑:只负责新增操作——只有当键不存在时才会添加成功;如果键已经存在,立刻抛出
ArgumentException异常,不会修改原有值。 - 示例:
dic.Add(key, value); dic.Add(key, value1); // 抛出异常:已添加了具有相同键的项
适用场景参考
- 如果业务逻辑允许覆盖更新,或者不确定键是否存在,用索引器更省心;
- 如果必须确保键是全新的(重复键属于错误场景),用
Add()方法能快速发现问题,避免意外覆盖。
内容的提问来源于stack exchange,提问作者shantanu ghosh
相关产品推荐
相关产品推荐

