static void Main(string[] args) { Console.WriteLine("How many pages?"); var numberOfPages = Console.ReadLine(); Console.WriteLine(); // validate int int pages = 0; try { pages = int.Parse(numberOfPages); } catch (Exception) { throw; } List <ResultPage> allResults = PageQuery.QueryPageRange(pages); bool isFiltering = true; while (isFiltering) { Console.Clear(); Console.WriteLine(allResults.Count.ToString() + " results found!"); Console.WriteLine(); Console.WriteLine("Looking for?"); var textToSearch = Console.ReadLine(); Console.WriteLine(); List <ResultPage> filteredResults = new List <ResultPage>(); for (int i = 0; i < allResults.Count; i++) { if (allResults[i].title.ToUpper().Contains(textToSearch.ToUpper())) { filteredResults.Add(allResults[i]); } } if (filteredResults.Count > 0) { for (int i = 0; i < filteredResults.Count; i++) { Console.WriteLine(filteredResults[i].title); Console.WriteLine(filteredResults[i].link); Console.WriteLine(); } if (WaitForYOrN("Open Links?")) { OpenLinks(filteredResults.Select(x => x.link).ToArray()); } Console.WriteLine(); if (!WaitForYOrN("Filter Again?")) { isFiltering = false; } } if (filteredResults.Count <= 0) { Console.WriteLine("No Results Found"); if (!WaitForYOrN("Filter Again?")) { isFiltering = false; } } } }