2014-11-05 24 views
4

有沒有辦法使用通配符或正則表達式來搜索和刪除HttpContext.Cache中的項目?在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

後一些輸入,預期的輸出,試圖:) – vks 2014-11-05 07:13:48

+0

你可能循環中的所有按鍵,然後做'string.StartsWith支票()',並刪除符合條件的項目。 – scheien 2014-11-05 07:15:45

+0

@vks看到我最後的編輯 – 2014-11-05 07:18:27

回答

2

你可以循環的項目是這樣的:

foreach(var key in HttpContext.Current.Cache) 
{ 
    if (key.StartsWith("item_")) 
    { 
     // remove the corresponding item here. 
    } 
} 

基本樣本,並需要一些調整以符合您的實施。

AFAIK您無法刪除基於通配符的項目,因爲您需要特定的密鑰。 (請證明我是錯的)