Is it there any LRU implementation of IDictionary?

前端 未结 10 1775
走了就别回头了
走了就别回头了 2020-11-29 21:20

I would like to implement a simple in-memory LRU cache system and I was thinking about a solution based on an IDictionary implementation which could handle an hashed LRU mec

10条回答
  •  执笔经年
    2020-11-29 21:51

    Found you answer while googling, also found this:

    http://code.google.com/p/csharp-lru-cache/

    csharp-lru-cache: LRU cache collection class library

    This is a collection class that functions as a least-recently-used cache. It implements ICollection, but also exposes three other members:

    • Capacity, the maximum number of items the cache can contain. Once the collection is at capacity, adding a new item to the cache will cause the least recently used item to be discarded. If the Capacity is set to 0 at construction, the cache will not automatically discard items.
    • Oldest, the oldest (i.e. least recently used) item in the collection.
    • DiscardingOldestItem, an event raised when the cache is about to discard its oldest item. This is an extremely simple implementation. While its Add and Remove methods are thread-safe, it shouldn't be used in heavy multithreading environments because the entire collection is locked during those methods.

提交回复
热议问题