/// <inheritdoc /> public bool Remove(KeyValuePair <TKey, TValue> item) { int hash = Math.Abs(item.Key.GetHashCode()) % _size; if (HashMap[hash] is KeyValuePair <TKey, TValue> ) { if (((KeyValuePair <TKey, TValue>)HashMap[hash]).Key.Equals(item.Key) && ((KeyValuePair <TKey, TValue>)HashMap[hash]).Value.Equals(item.Value)) { HashMap[hash] = null; _elementCount--; return(true); } else { return(false); } } else if (HashMap[hash] is AVLNode) { AVLNode node = (AVLNode)HashMap[hash]; return(AVLNode.FindRemoveItem(node, HashMap, hash, item, ref _elementCount)); } return(false); // Redundant }
/// <inheritdoc /> public bool Remove(KeyValuePair <TKey, TValue> item) { if (head == null) { return(false); } return(AVLNode.FindRemoveItem(head, this, item, ref count)); }