该类如下所示:
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/