public void SearchContacts(string keyWord = null) { Console.Clear(); ConsoleKeyInfo keyInfo; Contact[] contacts = null; if (keyWord == null) { keyWord = string.Empty; } else //знаходимо та показуємо результат { Console.Write("Search:" + keyWord); try { contacts = searcher.FindAll(keyWord).ToArray(); } catch (Exception e) { Console.WriteLine(e.Message); return; } ShowFoundContacts(contacts); Thread.Sleep(500); Console.Clear(); } string key = keyWord; Console.Write("Search:" + keyWord); keyInfo = Console.ReadKey(); //читаємо останній введений символ switch (keyInfo.Key) { case ConsoleKey.Backspace: //стираємо останній символ в стоці пошуку if (key != String.Empty) { key = key.Remove(key.Length - 1); } SearchContacts(key); break; case ConsoleKey.Enter: //закінчуємо пошук, показуючи результат if (contacts != null) { ShowFoundContacts(contacts); } else { Console.Clear(); return; } Console.ReadKey(); Console.Clear(); return; default: //додаємо символ до стоки пошуку if (char.IsLetterOrDigit(keyInfo.KeyChar)) { key = keyWord + keyInfo.KeyChar.ToString(); SearchContacts(key); } break; } }