该类如下所示:

public static class CacheManager
{
    private static Dictionary<string, object> cacheItems = new Dictionary<string, object>();

    private static ReaderWriterLockSlim locker = new ReaderWriterLockSlim();

    public static Dictionary<string, object> CacheItems
    {
        get
        {
            return cacheItems;
        }
    }
    ...
}


还应使用ReaderWriterLockSlim储物柜对象。

客户端现在如下所示:

foreach (KeyValuePair<string, object> dictItem in CacheManager.CacheItems)
{
    ...
}


先感谢您。

最佳答案

如果只需要迭代内容,坦率地说,它实际上并没有真正用作字典,但是可以使用迭代器块和索引器来隐藏内部对象:

public IEnumerable<KeyValuePair<string, object>> CacheItems
{
    get
    { // we are not exposing the raw dictionary now
        foreach(var item in cacheItems) yield return item;
    }
}
public object this[string key] { get { return cacheItems[key]; } }

关于c# - C#:如何在不将字典公开的情况下浏览字典项?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11028506/

10-12 17:13