Пытаюсь сделать цикл GET запросов на C# по ссылкам из LIST<>, но не получается победить эти списки

Всем привет, пытаюсь сделать цикл, который будет делать Get запросы по ссылкам из списка, а также сортировать их. Есть два списка "Новые ссылки" и "Старые ссылки". Переменной "Текущая ссылка" мы присваиваем значение из листа "Новых ссылок" по индексу 0. После чего мы делаем GET запрос по "Текщей ссылке", очищаем ответ с помощью регулярок и работой со строками до состояния обычной ссылки формата https://site.com/.../.../ и т.д., заносим эти значения в список "Новые ссылки", после добавляем "Текущую ссылку" в список "Старые ссылки" и удаляем эту ссылку из "Новые ссылки". А когда ссылки в "Новых ссылках" закончатся выйти из цикла. Возможно написал ересь, но я только недавно начал изучать C# и пока смог понять эту задачку таким образом. Вот мой код. Он делает get запросы по ссылкам после первого get запроса, но дальше не спускается. Подскажите что делаю не так. И если не сложно подскажите, что почитать или посмотреть, чтобы лучше разобраться в проблеме. Заранее спасибо

private async void button4_Click(object sender, EventArgs e)
    {
        string currLinks;
        int indexCurrLinks = 0;
        var NewLinks = new List<string>();
        var OldLinks = new List<string>();
        var LinksRVT = new List<string>();

        //Производим очистку Json ответа, и переносим URL с текстовой переменной в Список
        try
        {
            string text = await GetApiRequestAsync("https://developer.api.autodesk.com/project/v1/hubs");
            Regex regex = new Regex(@"(?<=href"":"")(.*?)""", RegexOptions.Multiline | RegexOptions.Compiled);
            MatchCollection matches = regex.Matches(text);
            if (matches.Count > 0)
            {
                foreach (Match match in matches)
                    richTextBox5.Text += ($"{match.Value.TrimEnd("\"".ToCharArray())}\n");
                listBox1.Items.AddRange(richTextBox5.Lines);
                NewLinks.AddRange(richTextBox5.Lines);
            }
            else
                MessageBox.Show("Совпадений не найдено");
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }
        
        //Создаём цикл, который будет брать по индексу ссылку из Нового списка,
        //приравнивать к переменной для нового GET запроса, очищать Json ответ(регулярными выражениями)
        //до получения ссылок, и переносить их в Новый список, если этих ссылок нет в Старом списке
            
            for (currLinks = NewLinks[indexCurrLinks]; NewLinks.Count != 0; currLinks = NewLinks[indexCurrLinks++])
            {
                try
                {
                    //Делаем GET запрос
                    string text = await GetApiRequestAsync(currLinks);
                    //очищаем регулярками
                    Regex regex = new Regex(@"(?<=href"":"")(.*?)""", RegexOptions.Multiline | RegexOptions.Compiled);
                    MatchCollection matches = regex.Matches(text);
                    if (matches.Count > 0)
                    {
                        foreach (Match match in matches)
                        richTextBox5.Text += ($"{match.Value.TrimEnd("\"".ToCharArray())}\n\n\n");
                        
                        //В список NewLinks из rtb5 заносим ссылки
                        NewLinks.AddRange(richTextBox5.Lines);
                        //Добавляем currLinks в список OldLinks
                        OldLinks.Add(NewLinks[indexCurrLinks]);
                        //Удаляем currLinks из списка NewLinks
                        NewLinks.RemoveAt(indexCurrLinks);

                        currLinks = NewLinks[indexCurrLinks];
                        
                    if (indexCurrLinks == 0)
                    {
                        break;
                    }
                }
                    else
                    richTextBox6.Text += ("Совпадений не найдено\n\n\n");
                    richTextBox6.Text += ($"{text}\n\n\n");
                }
                catch (Exception ex)
                {
                    richTextBox6.Text += $"{ex.Message}\n\n\n";
                }
            //Проверяем не внесены ли ссылки в OldLinks, если нет, результаты вносим в NewLinks


            //Запускаем цикл заново пока NewLinks список не станет пустым
            
        }


    }

Ответы (0 шт):