Exemplo n.º 1
0
        public TValue this[TKey key] {
            get {
                if (key == null)
                {
                    ThrowHelper.ThrowArgumentNullException(ExceptionArgument.key);
                }

                TreeSet <KeyValuePair <TKey, TValue> > .Node node = _set.FindNode(new KeyValuePair <TKey, TValue>(key, default(TValue)));
                if (node == null)
                {
                    ThrowHelper.ThrowKeyNotFoundException();
                }

                return(node.Item.Value);
            }
            set {
                if (key == null)
                {
                    ThrowHelper.ThrowArgumentNullException(ExceptionArgument.key);
                }

                TreeSet <KeyValuePair <TKey, TValue> > .Node node = _set.FindNode(new KeyValuePair <TKey, TValue>(key, default(TValue)));
                if (node == null)
                {
                    _set.Add(new KeyValuePair <TKey, TValue>(key, value));
                }
                else
                {
                    node.Item = new KeyValuePair <TKey, TValue>(node.Item.Key, value);
                    _set.UpdateVersion();
                }
            }
        }
        // Returns the value associated with the given key. If an entry with the
        // given key is not found, the returned value is null.
        //
        public TValue this[TKey key] {
            get {
                int i = IndexOfKey(key);
                if (i >= 0)
                {
                    return(values[i]);
                }

                ThrowHelper.ThrowKeyNotFoundException();
                return(default(TValue));
            }
            set {
                if (((Object)key) == null)
                {
                    ThrowHelper.ThrowArgumentNullException(ExceptionArgument.key);
                }
                int i = Array.BinarySearch <TKey>(keys, 0, _size, key, comparer);
                if (i >= 0)
                {
                    values[i] = value;
                    version++;
                    return;
                }
                Insert(~i, key, value);
            }
        }
Exemplo n.º 3
0
 public TValue this[TKey key] { 
     get {
         int i = FindEntry(key);
         if (i >= 0) return entries[i].value;
         ThrowHelper.ThrowKeyNotFoundException(); 
         return default(TValue);
     } 
     set { 
         Insert(key, value, false);
     } 
 }
Exemplo n.º 4
0
 public TValue this[TKey key]
 {
     get
     {
         int index = this.FindEntry(key);
         if (index >= 0)
         {
             return(this.entries[index].value);
         }
         ThrowHelper.ThrowKeyNotFoundException();
         return(default(TValue));
     }
     set
     {
         this.Insert(key, value, false);
     }
 }