Dictionary.Add
方法和索引器有什么区别Dictionary[key] = value
?
5 回答
添加-> 如果字典中已存在项,则将项添加到字典中,将引发异常。
索引器或Dictionary[Key]
=> 添加或更新。如果字典中不存在该键,则将添加一个新项。如果键存在,则值将使用新值更新。
dictionary.add
将向字典中添加一个新项目,dictionary[key]=value
将根据键为字典中的现有条目设置一个值。如果键不存在,那么它(索引器)将在字典中添加项目。
Dictionary<string, string> dict = new Dictionary<string, string>();
dict.Add("Test", "Value1");
dict["OtherKey"] = "Value2"; //Adds a new element in dictionary
Console.Write(dict["OtherKey"]);
dict["OtherKey"] = "New Value"; // Modify the value of existing element to new value
Console.Write(dict["OtherKey"]);
在上面的示例中,首先dict["OtherKey"] = "Value2";
将在字典中添加一个新值,因为它不存在,然后将其修改为新值。
Dictionary.Add
如果密钥已经存在,则抛出异常。[]
当用于设置项目时不会(如果您尝试访问它以进行读取,它会这样做)。
x.Add(key, value); // will throw if key already exists or key is null
x[key] = value; // will throw only if key is null
var y = x[key]; // will throw if key doesn't exists or key is null
的文档说明了Add
这一点,我觉得:
您还可以使用该
Item
属性通过设置 ; 中不存在的键的值来添加新元素Dictionary(Of TKey, TValue)
。例如,myCollection[myKey] = myValue
(在 Visual Basic 中,myCollection(myKey) = myValue
)。但是,如果指定的键已存在于 中Dictionary(Of TKey, TValue)
,则设置 Item 属性会覆盖旧值。相反,Add
如果具有指定键的值已存在,则该方法将引发异常。
(请注意,该Item
属性对应于索引器。)
当字典中不存在该键时,行为是相同的:在这两种情况下都将添加该项目。
当密钥已经存在时,行为会有所不同。 dictionary[key] = value
将更新映射到键的值,同时dictionary.Add(key, value)
会抛出 ArgumentException。
dictionary.add
将项目添加到字典中,同时dictionary[key]=value
将值分配给已经存在的键。