public new void Add(object key, object value)
 {
     CacheEntry entry;
     if (_map.TryGetValue(key, out entry))
     {
         entry.Remove();
         entry.Insert(_head);
         entry.Value = value;
     }
     else
     {
         entry = new CacheEntry(key, value);
         _map.Add(key, entry);
         entry.Insert(_head);
         if (_map.Count > _size)
         {
             CacheEntry randomEntry = FindRandomEntry();
             _map.Remove(randomEntry.Key);
             randomEntry.Remove();
         }
     }
 }
Example #2
0
 public void Add(object key, object value)
 {
     CacheEntry entry;
     if (_map.TryGetValue(key, out entry))
     {
         entry.Remove();
         entry.Insert(_head);
         entry.Value = value;
     }
     else
     {
         entry = new CacheEntry(key, value);
         _map.Add(key, entry);
         entry.Insert(_head);
         if (_map.Count > _size)
         {
             _map.Remove(_tail.Prev.Key);
             _tail.Prev.Remove();
         }
     }
 }