Difference of Dictionary.Add vs Dictionary[key]=value
.net, c#
Solution
Add -> Adds an item to the dictionary if item already exists in the dictionary an exception will be thrown.
Indexer or `Dictionary[Key]` => Add Or Update. If the key doesn't exist in the dictionary, a new item will be added. If the key exists then the value will be updated with the new value.
`dictionary.add` will add a new item to the dictionary, `dictionary[key]=value` will set a value to an existing entry in the dictionary against a key. If the key is not present then it (indexer) will add the item in the dictionary.
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"]);
In the above example, in first place `dict["OtherKey"] = "Value2";` will add a new value in the dictionary because it doesn't exist, and in second place it will modify the value to New Value.
Problem
What is the difference between the `Dictionary.Add` method and the indexer `Dictionary[key] = value`?