Метод добавления нового или обновления существующего элемента в словаре C#C#

Место общения программистов C#
Ответить
Anonymous
 Метод добавления нового или обновления существующего элемента в словаре C#

Сообщение Anonymous »

В некотором устаревшем коде я видел следующий метод расширения, облегчающий добавление нового элемента «ключ-значение» или обновление существующего значения:
Метод-1 (устаревший код):

Код: Выделить всё

public static void CreateNewOrUpdateExisting(
this IDictionary map, TKey key, TValue value)
{
if (map.ContainsKey(key))
{
map[key] = value;
}
else
{
map.Add(key, value);
}
}
Однако я проверил, что map[key] = value выполняет точно такую ​​же работу. То есть метод 1 можно заменить приведенным ниже методом 2.
Метод 2:

Код: Выделить всё

public static void CreateNewOrUpdateExisting(
this IDictionary map, TKey key, TValue value)
{
map[key] = value;
}
Теперь мой вопрос...

Могут ли возникнуть какие-либо проблемы, если я заменю метод-1 на метод-2?

Не сломается ли он в любом возможном сценарии?
Кроме того, я думаю, что раньше в этом заключалась разница между HashTable и Dictionary. HashTable позволяет обновлять элемент или добавлять новый элемент с помощью индексатора, а Dictionary - нет!

Устранена ли эта разница в версиях C# > 3.0?
Целью этого метода также является не выдавать исключение, если пользователь снова отправляет то же значение ключа. Метод должен, если ключ:
  • найден — обновить значение ключа и
  • не найден — создать новое ключ-значение.


Подробнее здесь: https://stackoverflow.com/questions/424 ... dictionary
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»