/// <inheritdoc />
        public bool Remove(TIndex key)
        {
            IDictionaryContracts.Remove(this, key);

            if (!this.ContainsKey(key))
            {
                return(false);
            }

            this.indexable[key] = TryValue.None <TValue>();
            this.count--;
            return(true);
        }
        /// <inheritdoc />
        public bool Remove(TIndex key)
        {
            IDictionaryContracts.Remove(this, key);

            return(this.dictionary.Remove(key));
        }
        /// <inheritdoc />
        public virtual bool Remove(TKey key)
        {
            IDictionaryContracts.Remove(this, key);

            return(this.Dictionary.Remove(key));
        }