有没有办法使用通配符或正则表达式来搜索和删除HttpContext.Cache
中的项目?
我可以在我的缓存“item_1”,“item_2”,...,“item_n”中,我想从缓存中删除与模式“item_ *”的键相关的所有值。如何在不检查项目是否存在的情况下实现该目标,然后将其删除?
例如:
而不是:
HttpContext.Current.Cache.Remove("item_1")
HttpContext.Current.Cache.Remove("item_2")
HttpContext.Current.Cache.Remove("item_3")
我想要类似的东西:
HttpContext.Current.Cache.Remove("item_*")
答案 0 :(得分:2)
你可以循环这样的项目:
foreach(var key in HttpContext.Current.Cache)
{
if (key.StartsWith("item_"))
{
// remove the corresponding item here.
}
}
基本示例,需要进行一些调整才能与您的实现相匹配。
AFAIK您无法删除基于通配符的项目,因为您需要特定的密钥。 (请证明我错了)
答案 1 :(得分:0)
^HttpContext\.Current\.Cache\.Remove\("item_.*?"\)$
您可以尝试使用empty string
替换。请参阅演示。