使用 contains 关键字删除所有缓存

Owa*_*med 4 .net c# memcached caching c#-4.0

这就是我创建缓存键的方式

string cachekey_base = "IR_";
string symbol = "AUD";
static string id = "12345";

string cacheKey_Quote = $"{cachekey_base}{symbol}{id}Quote";
Run Code Online (Sandbox Code Playgroud)

id 是随机生成的,所以如果我知道 id,那么只需像这样删除缓存即可

    MemoryCache.Default.Remove(key);
Run Code Online (Sandbox Code Playgroud)

但问题是Id可以是任何随机数。

那么有没有一种方法可以删除使用 contains 关键字。

例如,在我的例子中,如果键包含“IR_”,则删除所有缓存

任何帮助或建议将不胜感激。

预先感谢`

Ahm*_*sif 5

您可以过滤要删除的键,然后迭代这些键并删除它们,如下所示:

var removedKeys = MemoryCache.Default.Where( x=> x.Key.Contains("IR_")).Select(x=> x.Key).ToList();
foreach(var key in removedKeys)
    MemoryCache.Default.Remove(key);
Run Code Online (Sandbox Code Playgroud)