using System.Collections.Generic;
public static void Main()
Dictionary<string, object> dict = new Dictionary<string, object>
{ "clave3", "Hola mundo" },
Console.WriteLine(dict.GetValue<double>("clave1"));
Console.WriteLine(dict.GetValue<short>("clave2"));
Console.WriteLine(dict.GetValue<string>("clave3"));
Console.WriteLine(dict.GetValue<bool>("clave4"));
public static class DictionaryExtensions
public static T GetValue<T>(this Dictionary<string, object> dictionary, string key)
if(!dictionary.ContainsKey(key)) return default;
t = Nullable.GetUnderlyingType(t) ?? t;
var value = dictionary[key];
return value == null ? default : (T)Convert.ChangeType(value, t);