Я знаю, что это - старый поток, но в случае, если полезно, что предшествующие ответы являются большими, но комментарии сложности и проблемы замусоривания кода (все допустимые для меня также) могут быть обращены.
я использую пользовательский дополнительный метод для оборачивания сложности вышеупомянутых ответов в более изящной форме так, чтобы она не была замусорена всюду по коду, и она затем включает большую поддержку пустого указателя, объединяют оператор... также максимизируя производительность (с помощью вышеупомянутых ответов).
namespace System.Collections.Generic.CustomExtensions
{
public static class DictionaryCustomExtensions
{
public static TValue GetValueSafely<TKey, TValue>(this IDictionary<TKey, TValue> dictionary, TKey key)
{
TValue value = default(TValue);
dictionary.TryGetValue(key, out value);
return value;
}
}
}
Затем можно использовать его просто путем импорта Системы пространства имен . Наборы. Универсальный. CustomExtensions
string value = dictionary.GetValueSafely(key) ?? "default";