Example #1
0
 public BiDictionary(Dictionary <T1, T2> keysToValue)
 {
     KeyToValue = keysToValue;
     foreach (var keyValue in keysToValue)
     {
         ValueToKey.Add(keyValue.Value, keyValue.Key);
     }
 }
Example #2
0
 public void Remove(T1 key)
 {
     if (KeyToValue.TryGetValue(key, out T2 value))
     {
         KeyToValue.Remove(key);
         ValueToKey.Remove(value);
     }
 }
Example #3
0
 public void Remove(T2 value)
 {
     if (ValueToKey.TryGetValue(value, out T1 key))
     {
         ValueToKey.Remove(value);
         KeyToValue.Remove(key);
     }
 }
Example #4
0
 public T2 this[T1 key]
 {
     get
     {
         return(KeyToValue[key]);
     }
     set
     {
         T2 oldValue = KeyToValue[key];
         if (!oldValue.Equals(value))
         {
             ValueToKey.Remove(oldValue);
             KeyToValue[key]   = value;
             ValueToKey[value] = key;
         }
     }
 }
Example #5
0
 public bool ContainsValue(T2 value)
 {
     return(ValueToKey.ContainsKey(value));
 }
Example #6
0
 public bool TryGet(T2 value, out T1 key)
 {
     return(ValueToKey.TryGetValue(value, out key));
 }
Example #7
0
 public void Add(T1 key, T2 value)
 {
     KeyToValue.Add(key, value);
     ValueToKey.Add(value, key);
 }