/// <summary>
        /// Remove a key/value from the dictionary if present.
        /// </summary>
        /// <param name="k">key</param>
        /// <returns>True if removal worked. False if removal is not possible.</returns>
        public bool Remove(TK k)
        {
            if (!ContainsKey(k))
            {
                return(false);
            }

            LLEntry entry = dictionary[k];

            list.Remove(entry.vNode);
            return(dictionary.Remove(k));
        }
 /// <summary>
 /// Add an item. Replacement is allowed.
 /// </summary>
 /// <param name="k">key</param>
 /// <param name="v">value</param>
 public void Add(TK k, TV v)
 {
     Remove(k);
     dictionary[k] = new LLEntry(v, list.AddLast(v));
 }