Подтвердить что ты не робот

Разница словаря. Add vs Dictionary [ключ] = значение

В чем разница между методом Dictionary.Add и индексом Dictionary[key] = value?

4b9b3361

Ответ 1

Добавить → Добавляет элемент в словарь, если элемент уже существует в словаре, будет выбрано исключение.

Индексатор или Dictionary[Key] = > Добавить или обновить. Если ключ не существует в словаре, будет добавлен новый элемент. Если ключ существует, значение будет обновляться с новым значением.


dictionary.add добавит новый словарь в словарь, dictionary[key]=value установит значение для существующей записи в словаре против ключа. Если ключ отсутствует, то он (indexer) добавит элемент в словарь.

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"; добавит новое значение в словаре, потому что оно не существует, и, во-вторых, оно изменит значение на New Value.

Ответ 2

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

Ответ 3

Документация для Add делает это очень ясным, я чувствую:

Вы также можете использовать свойство Item, чтобы добавить новые элементы, установив значение ключа, которого нет в Dictionary(Of TKey, TValue); например, myCollection[myKey] = myValue (в Visual Basic, myCollection(myKey) = myValue). Однако, если указанный ключ уже существует в Dictionary(Of TKey, TValue), установка свойства Item перезаписывает старое значение. Напротив, метод Add генерирует исключение, если значение с указанным ключом уже существует.

(Обратите внимание, что свойство Item соответствует указателю.)

Всегда стоит посоветоваться с документацией, прежде чем задавать вопрос...

Ответ 4

Поведение идентично, если ключ не существует в словаре: элемент будет добавлен в обоих случаях.

Поведение отличается, когда ключ уже существует. dictionary[key] = value будет обновлять значение, сопоставленное с ключом, тогда как dictionary.Add(key, value) вместо этого выдает исключение ArgumentException.

Ответ 5

dictionary.add добавить элемент в словарь, тогда как dictionary[key]=value присваивает значение уже существующему ключу.