循环遍历ASP.NET缓存对象中的键
发布时间:2020-12-16 04:07:43 所属栏目:asp.Net 来源:网络整理
导读:ASP.NET中的缓存看起来像使用某种关联数组: // Insert some data into the cache:Cache.Insert("TestCache",someValue);// Retrieve the data like normal:someValue = Cache.Get("TestCache");// But,can be done associatively ...someValue = Cache["Tes
ASP.NET中的缓存看起来像使用某种关联数组:
// Insert some data into the cache: Cache.Insert("TestCache",someValue); // Retrieve the data like normal: someValue = Cache.Get("TestCache"); // But,can be done associatively ... someValue = Cache["TestCache"]; // Also,null checks can be performed to see if cache exists yet: if(Cache["TestCache"] == null) { Cache.Insert(PerformComplicatedFunctionThatNeedsCaching()); } someValue = Cache["TestCache"]; 如您所见,对缓存对象执行空检查非常有用. 但是我想实现一个可以清除缓存值的缓存清除功能 任何人都可以帮我找出一种循环存储缓存键的方法 static void DeleteMatchingCacheKey(string keyName) { // This foreach implementation doesn't work by the way ... foreach(Cache as c) { if(c.Key.Contains(keyName)) { Cache.Remove(c); } } } 解决方法
从任何集合类型中删除项目时不要使用foreach循环 – foreach循环依赖于使用枚举器,该枚举器不允许您从集合中删除项目(如果迭代的集合具有项目,则枚举器将抛出异常添加或删除它).
使用简单的while循环缓存键: int i = 0; while (i < Cache.Keys.Length){ if (Cache.Keys(i).Contains(keyName){ Cache.Remove(Cache.Keys(i)) } else{ i ++; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 从EF 6 Code First迁移和多个配置生成完整的SQL
- asp.net – 从EF模型第一个图生成类
- asp.net-mvc-3 – 如何根据Screen vs Handheld切换_layout.
- asp.net – Windows 7 SP1 IIS错误与“无效的应用程序路径”
- asp.net-mvc-2 – 如何在asp.net mvc2中的控制器外部获取请
- asp.net-core – .NET Core的静态代码分析工具
- asp.net – VS2008中的许多ascx-to-one ascx.cs错误
- .net – 强制从/ bin加载汇编,而不是GAC?
- asp.net-core – 如何从ASP.NET Core中的Razor View获取Url
- asp.net – SQL Server Reporting Services – 运行报表时出
推荐文章
站长推荐
热点阅读