elementat c# dictionary

elementat - c# dictionary vs hashtable



C#: ¿Qué devuelve el indexador[string] del Diccionario? (4)

¿Qué devuelve el indexador [string] del Dictionary cuando la clave no existe en el Diccionario? Soy nuevo en C # y no puedo encontrar una referencia tan buena como los Javadocs.

¿Recibo null o recibo una excepción?


Alternativamente al uso de TryGetValue , primero puede verificar si la clave existe utilizando dict.ContainsKey(key) eliminando así la necesidad de declarar un valor antes de averiguar si realmente lo necesitará.


Como siempre, la documentación es la forma de descubrirlo.

En Excepciones:

KeyNotFoundException The property is retrieved and key does not exist in the collection

(Supongo que te refieres a Dictionary<TKey,TValue> , por cierto).

Tenga en cuenta que esto es diferente del comportamiento Hashtable no genérico .

Para intentar obtener el valor de una clave cuando no se sabe si existe o no, use TryGetValue .


Si se refiere al indexador de un Dictionary<string,SomeType> , entonces debería ver una excepción ( KeyNotFoundException ). Si no quiere que sea un error:

SomeType value; if(dict.TryGetValue(key, out value)) { // key existed; value is set } else { // key not found; value is default(SomeType) }


Creo que puedes probar un

dict.ContainsKey(someKey)

para verificar si el diccionario contiene la clave o no.

Gracias