Csharp/C#教程:如何正确处理添加新项目到字典?分享


如何正确处理添加新项目到字典?

我有一个ASP.NET应用程序,我使用静态类作为缓存。 在静态类中是内部字典,它包含缓存的对象。 当然,在静态类中有添加/删除/清除等方法…它看起来如下:

public static class CacheManager { private static Dictionary cacheItems = new Dictionary(); private static ReaderWriterLockSlim locker = new ReaderWriterLockSlim(); public static Dictionary CacheItems { get { return cacheItems; } } public static void AddCacheItem(string key, object data) { locker.EnterWriteLock(); try { cacheItems.Add(key, data); } finally { locker.ExitWriteLock(); } } ... } 

ASP.NET应用程序运行时,项目已添加到缓存(字典)中。 我只是想问一下,如果已经以这种方式添加了密钥,我应该在Add方法中查看示例:

  public static void AddCacheItem(string key, object data) { locker.EnterWriteLock(); try { if (!cacheItems.ContainsKey(key)) { cacheItems.Add(key, data); } } finally { locker.ExitWriteLock(); } } 

或者将其保留在第一个代码段中?

先感谢您。

您可以再实施一个TryAdd方法

 public static bool TryAddCacheItem(string key, object data) { locker.EnterWriteLock(); try { if (cacheItems.ContainsKey(key)) { return false; } cacheItems.Add(key, data); return true; } finally { locker.ExitWriteLock(); } } 

另外我建议使用ConcurrentDictionary 。 这是ConcurrentDictionary的代码。

只执行两次:

cacheItems.Add(key, data);

……你会知道答案。 基本上,exception将被try / finally块抛出并捕获。 我个人会使用if语句而不是将所有逻辑责任放在try块上,但它是一个偏好的问题……

上述就是C#学习教程:如何正确处理添加新项目到字典?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1038746.html

(0)
上一篇 2022年1月26日
下一篇 2022年1月26日

精彩推荐