次のような単純な「キャッシュ」インフラストラクチャがあります。
Dictionary<string, object> cache = new Dictionary<string, object>();
(object
ここでは値の型として使用していますが、実際にはより具体的な型です。)
アイデアは、多くの計算された値 (実際には、SQL データベースからの結果) を tis ディクショナリに名前で格納することです。ほとんどの場合、単一の要素に対して、高速の挿入と取得を行う必要があります。
使用してみると、特定の文字列で始まるすべてのエントリを削除して、一部のエントリを無効にする必要がある場合があることがわかりました。私の素朴な実装は次のようになります。
cache.Keys.Where(key => key.StartsWith(name)).ToList().ForEach(cache.Remove);
おそらく最善の解決策ではないことを知っているので、.NET Framework を調べて、これをより効率的に実行できるデータ構造を探しています。
よりも適したクラスはありDictionary<>
ますか?