public bool Remove(KeyValuePair <TKey, TValue> item)
        {
            KeyValuePair <NullableKey <TKey>, TValue> keyValuePair = new KeyValuePair <NullableKey <TKey>, TValue>(NullableKey <TKey> .Create(item.Key), item.Value);

            return(((ICollection <KeyValuePair <NullableKey <TKey>, TValue> >)mDictionary).Remove(keyValuePair));
        }
 public TValue this[TKey key]
 {
     get { return(mDictionary[NullableKey <TKey> .Create(key)]); }
     set { mDictionary.Add(NullableKey <TKey> .Create(key), value); }
 }
 public bool TryGetValue(TKey key, out TValue value)
 {
     return(mDictionary.TryGetValue(NullableKey <TKey> .Create(key), out value));
 }
 public bool Remove(TKey key)
 {
     return(mDictionary.Remove(NullableKey <TKey> .Create(key)));
 }
 public bool ContainsKey(TKey key)
 {
     return(mDictionary.ContainsKey(NullableKey <TKey> .Create(key)));
 }
 public void Add(TKey key, TValue value)
 {
     mDictionary.Add(NullableKey <TKey> .Create(key), value);
 }