Удалить все кэши, используя ключевое слово содержит - PullRequest
3 голосов
/ 16 мая 2019

Вот как я создаю ключ кеша

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

string cacheKey_Quote = $"{cachekey_base}{symbol}{id}Quote";

Идентификатор генерируется случайным образом, поэтому, если я знаю идентификатор, просто удалите кеш, как этот

    MemoryCache.Default.Remove(key);

Нопроблема в том, что Id может быть любым случайным числом.

Так есть ли способ удалить с помощью ключевого слова содержимого.

Например, в моем случае удалить весь кэш, если ключ содержит `" IR _ "

Буду признателен за любую помощь или предложение.

Заранее спасибо`

1 Ответ

1 голос
/ 16 мая 2019

вы можете отфильтровать ключи, которые вы хотите удалить, затем перебрать эти ключи и удалить их следующим образом:

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