using System.Collections.Generic;
using KGySoft.Collections;
private static Cache<int, bool> isPrimeCache;
public static void Main()
isPrimeCache = new Cache<int, bool>(ItemLoader, 4);
isPrimeCache.Behavior = CacheBehavior.RemoveLeastRecentUsedElement;
Console.WriteLine(isPrimeCache.GetStatistics().ToString());
private static bool ItemLoader(int number)
Console.WriteLine("Item loading has been invoked for value {0}", number);
int sqrt = (int)Math.Floor(Math.Sqrt(number));
private static void CheckPrime(int number)
bool isPrime = isPrimeCache[number];
Console.WriteLine("{0} is a prime: {1}", number, isPrime);
private static void DumpCache()
Console.WriteLine("Cache elements count: {0}", isPrimeCache.Count);
if (isPrimeCache.Count > 0)
Console.WriteLine("Cache elements:");
foreach (KeyValuePair<int, bool> item in isPrimeCache)
Console.WriteLine("\tKey: {0},\tValue: {1}", item.Key, item.Value);