イメージのキャッシュとして使用するオブジェクト (文字列ファイル名、BitmapImage イメージ) のリストがあります。
private static readonly List<ImageData> imageCache = new List<ImageData>();
画像が必要になるたびにこのキャッシュをチェックするルックアップを作成しました。イメージがリストにない場合は、リストに追加されます。
Looked は静的に作成されます
private static Lookup<string, ImageData> FileNameLookup = (Lookup<string, ImageData>)
imageCache.ToLookup(data => data.ImageFileName, data => data);
ただし、リストに要素を追加するたびに FileNameLookup を再作成しない限り、Lookup は同じファイル名を持つオブジェクトを返すことはありません。
public static void Reinit()
{
FileNameLookup = (Lookup<string, ImageData>) imageCache.ToLookup(data =>
data.ImageFileName, data => data);
}
リストの内容が静的な場合にのみルックアップを使用する必要がありますか? Dictionary は簡単に使用できますが、Lookup を試してみたかったのです。
乾杯、
ジェームズ