public static async Task StarterAsync(URLSettings hotel, dateSettings dates) { var urlAddresses = hotel.getUrlsList(dates); var pricesList = new List <List <List <string> > >(); for (int i = 0; i < urlAddresses.Length; i++) { Console.WriteLine($"\nПроисходит магия... Страница: {i + 1}/{urlAddresses.Length}"); var list_ = await PriceParser.GetPricesAsync(urlAddresses[i]); pricesList.Add(list_); } Console.WriteLine(); Console.WriteLine($"Минимальные цены в выбранном отеле:"); Console.WriteLine(); Console.WriteLine($"ПыСы: если между отображаемыми датами больше 1 дня, \n" + $"в этом диапазоне цены соответствуют ближайшему предыдущему значению."); Console.WriteLine(); DateTime dateCount = dates.Start; for (int i = 0; i < pricesList.Count; i++) { try { // Этот кусок определяет совпадения между датами идущими подряд // Если данные совпадают с предыдущими, то скипает вывод и переходит к следующей дате if (i != 0 && pricesList[i][0][0] == pricesList[i - 1][0][0] && pricesList[i][0][1] == pricesList[i - 1][0][1]) { dateCount = dateCount.AddDays(dates.Step); continue; } Console.Write("Цена на дату: " + dateCount.ToString("yyyy-MM-dd")); Console.Write(pricesList[i][0][0] + pricesList[i][0][1]); dateCount = dateCount.AddDays(dates.Step); } catch { Console.WriteLine("\nВозникла ошибка, проверьте наличие цен на выбранные даты"); break; } } }