static void Main(string[] args) { NativeCache <string> cache = new NativeCache <string>(7); cache.Appeal("translator"); cache.Appeal("video"); cache.Appeal("google"); cache.Appeal("yandex"); cache.Appeal("google"); cache.Appeal("video"); cache.Appeal("yandex"); cache.PrintCache(); cache.Appeal("vk.com"); cache.PrintCache(); cache.Appeal("mts"); cache.PrintCache(); }
static void Main(string[] args) { NativeCache <string> testCache = new NativeCache <string>(10); // Формируем уникальные пары ключ - значение по размеру таблицы for (int i = 0; i < testCache.size; i++) { string key = "Key0" + i; string value = "" + (char)(i + 33); testCache.Put(key, value); } // отображаем внутренние массивы ключей, значений и обращений Console.WriteLine("Исходная заполненная таблица:"); testCache.Print(); for (int i = 0; i < 10; i++) // имитируем обращения к таблице { switch (i) { case 0: testCache.IsKey("Key00"); goto case 1; case 1: testCache.IsKey("Key01"); goto case 2; case 2: testCache.IsKey("Key02"); goto case 3; case 3: testCache.IsKey("Key03"); goto case 4; case 4: testCache.IsKey("Key04"); goto case 5; case 5: testCache.IsKey("Key05"); goto case 6; case 6: testCache.IsKey("Key06"); goto case 7; case 7: testCache.IsKey("Key07"); goto case 8; case 8: testCache.IsKey("Key08"); goto case 9; case 9: testCache.IsKey("Key09"); break; } } // отображаем массивы, число обращений теперь изменилось Console.WriteLine("Таблица после обращений:"); testCache.Print(); testCache.Put("Key46", "A"); // Добавлем новый ключ в слот с уже существующим ключом Console.WriteLine("Таблица после записи новой пары ключ \\ значение :"); testCache.Print(); // Ключ и значение с минимальным числом обращений перезаписаны testCache.Get("Key46"); // увеличиваем число обращений по ключу Key46 testCache.Get("Key46"); // теперь ключ Key01 с минимальным числом обращений 2 testCache.Put("Key47", "B"); // Добавляяем новый ключ Console.WriteLine("Таблица после записи 2й новой пары ключ \\ значение :"); testCache.Print(); // Ключ с минимальным числом обращений (Key01) перезаписан testCache.Get("Key47"); // увеличиваем число обращений по ключу Key47 testCache.Get("Key47"); // после обращений к ключу Key 47 теперь ключи Key46 и Key02 с минимальным числом обращений testCache.Put("Key47", "C"); // Добавляяем новый ключ Console.WriteLine("Таблица после записи 3й новой пары ключ \\ значение :"); testCache.Print(); // Ключ с минимальным числом обращений (Key46) перезаписан, поскольку в таблице записан раньше ключа Key02 Console.ReadKey(); }