Если вы хотите сохранить старое значение, если ключ уже существует (что и делает ваш текущий код), тогда проверка сначала - единственный вариант. Однако для упрощения мы можем создать метод расширения, который обертывает проверку.
Вот пример, который возвращает bool
, указывающее, было ли добавлено новое значение:
public static class Extensions
{
public static bool AddIfMissing<TKey, TValue>(
this SortedList<TKey, TValue> list, TKey key, TValue value)
{
if (list.ContainsKey(key)) return false;
list.Add(key, value);
return true;
}
}
Теперь, когда мы хотим добавить значение, нам не нужно писать код, который проверяет ключ каждый раз, мы просто пишем:
sortedList.AddIfMissing(key, value);