Dictionary devuelve un valor predeterminado si la clave no existe [duplicado]
Esta pregunta ya tiene una respuesta aquí:
Existe una implementación IDictionary que, en la clave faltante, devuelve el valor predeterminado en lugar de arrojar? 12 respuestasMe encuentro usando el patrón actual con bastante frecuencia en mi código hoy en día
var dictionary = new Dictionary<type, IList<othertype>>();
// Add stuff to dictionary
var somethingElse = dictionary.ContainsKey(key) ? dictionary[key] : new List<othertype>();
// Do work with the somethingelse variable
O algunas vece
var dictionary = new Dictionary<type, IList<othertype>>();
// Add stuff to dictionary
IList<othertype> somethingElse;
if(!dictionary.TryGetValue(key, out somethingElse) {
somethingElse = new List<othertype>();
}
Ambas formas se sienten bastante indirectas. Lo que realmente me gustaría es algo como
dictionary.GetValueOrDefault(key)
Ahora, podría escribir un método de extensión para la clase de diccionario que haga esto por mí, pero pensé que podría estar perdiendo algo que ya existe. Entonces, ¿hay alguna manera de hacer esto de una manera que sea más "fácil para la vista" sin escribir un método de extensión en el diccionario?