Метод-1 (устаревший код):
Код: Выделить всё
public static void CreateNewOrUpdateExisting(
this IDictionary map, TKey key, TValue value)
{
if (map.ContainsKey(key))
{
map[key] = value;
}
else
{
map.Add(key, value);
}
}
Метод 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
Мобильная версия