在我的C#编码体验期间,我看到了许多代码片段,其中使用了IDictionary [index] setter来添加新值:
var dictionary = new Dictonary<long, string>();
...
dictionary[1] = "one"; //assume we want to add new value here
Run Code Online (Sandbox Code Playgroud)
因此,不使用dictionary.Add(1,"one")开发人员通过索引器调用重写旧值(如果存在)(等于AddOrUpdate操作);
我认为当您尝试将值设置为已存在的键时,字典应该抛出异常(就像当您尝试获取非现有键时它会抛出).这是一个争论性的陈述,但我想将我的观点与你的观点进行比较.
让两个成员做同样事情会有什么意义?
如果要将字典有效地用作关联数组,请按照与数组相同的方式进行分配,请使用索引器.如果你想要一个更加"保护"的字典添加,请使用Add.
使索引器抛出现有条目会使其行为与其他集合(如数组和列表)的索引器完全不同.
(编辑:请注意,当你尝试获取一个没有给出值的条目时,字典索引器的行为已经略有不同了.在某些方面,这与访问超出范围的索引相同, 我想...)
| 归档时间: |
|
| 查看次数: |
418 次 |
| 最近记录: |