gpt4 book ai didi

c# - Dictionary.Item 和 Dictionary.Add 有什么区别?

转载 作者:行者123 更新时间:2023-11-30 21:45:58 25 4
gpt4 key购买 nike

正在阅读 C# Java HashMap equivalent 的接受答案,它的文学陈述:

C#'s Dictionary uses the Item property for setting/getting items:

  • myDictionary.Item[key] = value
  • MyObject value = myDictionary.Item[key]

在尝试实现它时,我在使用时遇到错误:

myDictionary.Item[SomeKey] = SomeValue;

Error: CS1061 'Dictionary' does not contain a definition for 'Item'

我需要使用 myDictionary.Add(SomeKey, SomeValue); 来代替 this answerMSDN - Dictionary以解决错误。

代码很好,但出于好奇,我做错了什么吗?除了一个不编译,还有什么区别

Dictionary.Item[SomeKey] = SomeValue; 

Dictionary.Add(SomeKey, SomeValue);

编辑:

我在 C# Java HashMap equivalent 中编辑了已接受的答案.查看版本历史以了解原因。

最佳答案

我认为区别在于:

  • Dictionary[SomeKey] = SomeValue;(不是 Dictionary.Item[SomeKey] = SomeValue;)将在键不存在时添加新的键值对,如果键存在,它将替换值
  • Dictionary.Add(SomeKey, SomeValue); 将添加新的键值对,如果键已经存在,将抛出参数异常:具有相同键的项目已被添加

例子是:

try
{
IDictionary<int, string> dict = new Dictionary<int, string>();

dict.Add(0, "a");
dict[0] = "b"; // update value to b for the first key
dict[1] = "c"; // add new key value pair
dict.Add(0, "d"); // throw Argument Exception
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}

关于c# - Dictionary.Item 和 Dictionary.Add 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39643219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com