public override bool Get(ref T t) { var result = false; LinkedListNode <T> rNode; T temp; if (LruFunction.SearchData <T, TK, TV>(mLink, t.Key, out rNode)) { LruFunction.Sort(mLink, rNode); result = true; } else if (LruFunction.SearchQueue <T, TK, TV>(mHisQueue, t.Key, out temp)) { mHisQueue.Enqueue(temp); t = temp; result = true; } return(result); }
public override void Set(T t) { T temp; if (LruFunction.SearchQueue <T, TK, TV>(mHisQueue, t.Key, out temp)) { while (mLink.Count > Cap) { mLink.RemoveLast(); } mLink.AddFirst(t); } else { while (mHisQueue.Count > CapHistory) { mHisQueue.Dequeue(); } mHisQueue.Enqueue(t); } }