#c# #winforms
Вопрос:
Я пытаюсь найти способ прочитать случайную строку из Pastebin
string line = "";
WebClient WC = new WebClient();
List<string> TEST = new List<string>();
Random Rand = new Random();
line = WC.DownloadString("Pastebin");
TEST.Add(line);
button1.Text = TEST[Rand.Next(1, TEST.Count)];
Но проблема с кодом в том, что он реагирует на это
Это приводит к этой ошибке
Система.Исключение ArgumentOutOfRangeException: «Индекс вышел за пределы диапазона. Должно быть неотрицательным и меньше размера коллекции.
Имя параметра: индекс’
Есть ли возможное решение
И если вы можете, не могли бы вы объяснить, как вы это исправили, чтобы я мог решить эту проблему в будущем.
Комментарии:
1. Вам нужно будет разделить
line
наcrlf
что-то или что-то, а затем выбрать случайный элемент из этого2. Я прав? линия. Раскол()
Ответ №1:
Итак … вы загружаете одну строку из pastebin
Вы поместили эту строку в новый список, так что она оказалась с индексом 0. Список содержит 1 строку, поэтому количество списков равно 1
Вы запросили Случайное новое случайное значение от 1 до 1, которое даст вам 1
И затем вы попросили список предоставить вам строку с индексом 1.. но в этом индексе нет никакой строки. Единственный допустимый индекс списка равен 0. Это приводит к исключению за пределами диапазона.
Я предлагаю вам разделить загруженный текст и добавить его в список
TEXT.AddRange(line.Split('n'))
Кроме того, пусть random вернет вам значение от 0 до 0, иначе вы никогда не получите эту первую строку
Комментарии:
1. Спасибо! Я ценю это.