public void Set(TKey key, TValue value, DateTime expired) { lock (_mapping.SyncRoot) { if (_mapping.ContainsKey(key)) { var item = _mapping[key] as CachingItem <TKey, TValue>; item.Values = value; item.Expired = expired; _linklist.MarkUse(item.Node); } else { var item = new CachingItem <TKey, TValue>() { Values = value, Expired = expired, Node = _linklist.AddNew(key) }; _mapping.Add(key, item); } //Console.WriteLine("LRUCaching:" + _mapping.Keys.Count); } }