public void Update(TKey key, TValue value) { CheckPairOnNull(key, value); if (_items != null) { var index = Hash(key); var pair = new NodePair <TKey, TValue>(key, value); if (_items[index] != null) { _items[index].RemoveFirst(); _items[index].AddFirst(pair); } else { throw new ArgumentException($"{nameof(key)} doesn't exist."); } } else { throw new NullReferenceException($"{_items}"); } }
public bool Remove(TKey key) { var index = Hash(key); if (_items == null) { return(false); } if (_items[index] == null) { return(false); } TValue value; TryGetValue(key, out value); var pair = new NodePair <TKey, TValue>(key, value); _items[index].Remove(pair); Size--; return(true); }
public void Add(TKey key, TValue value) { CheckPairOnNull(key, value); if (GetLoadFactor() >= LoadFactor) { Resize(); } var index = Hash(key); if (_items == null) { _items = new LinkedList <NodePair <TKey, TValue> > [Capacity]; } if (_items[index] == null) { _items[index] = new LinkedList <NodePair <TKey, TValue> >(); var pair = new NodePair <TKey, TValue>(key, value); var node = new LinkedListNode <NodePair <TKey, TValue> >(pair); _items[index].AddFirst(node); Size++; } else { throw new ArgumentException($"{nameof(key)} must be uniq."); } }