|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.02.2023, 10:59 | #1 |
Новичок
Джуниор
Регистрация: 25.02.2023
Сообщений: 1
|
Индекс за пределами диапазона в программе для чат бота
Здравствуйте форумчане. Мне нужно написать, что-то наподобие чат-бота. Заранее прошу ответить только на этот вопрос. Проблема заключается в том, что индекс, по которому выбирается слово в list, выходит за пределами диапазона, хотя элементы в list ещё остаются. Можете я чего-то не вижу, можете посмотреть и сказать в чём дело. Скрины и код, где находится ошибка прилагаются.
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace WindowsFormsApplication1 { class MenuMaker { public Random Randomizer; string[] Meats ={ "Roast beef", "Salami", "Turkey", "Ham", "Pastrami"}; string[] Condiments ={ "yellow", "mayo", "relish", "french dressing" }; string[] Breads = { "rye", "white", "wheat", "pumpernickel", "italian bread", "a roll" }; List<string> Meat = new List<string>(); List<string> Condiment = new List<string>(); List<string> Bread = new List<string>(); int a = 0; //переношу все элементы Meats в List Meat и тд. public string GetMenuItem() { int i = 0; if (a < Breads.Length) { if (a == 0) { for (int k = 0; k < Meats.Length;k++ ) { Meat.Add(Meats[i]); Condiment.Add(Meats[i]); Bread.Add(Meats[i]); i++; } } a++; } else { Meat.Add("*"); } int getIndex = Randomizer.Next(Meat.Count); string randomMeat = Meat[getIndex]; //удаляю выбранный элемент из list Meat.RemoveAt(getIndex); return randomMeat + " whis ";//+ randomCondiment + " whis " + randomBread; } } } |
26.02.2023, 00:07 | #2 |
Регистрация: 10.02.2023
Сообщений: 6
|
У вас там Meat.Count = 0. Я так понимаю, тут не весь листинг приложения. В любом случае, дёргается Randomizer.Next(0), который возвращает 0 и вы пытаетесь в списке Meat найти элемент с индексом 0, но его не существует, т.к. список пустой
|
26.02.2023, 00:10 | #3 |
Регистрация: 10.02.2023
Сообщений: 6
|
Значения переменных посмотрел в вашем скрине, в левой нижней части, вкладка "видимые".
вообще попробуйте брекпойнт поставить и посмотреть, почему список оказался пустым. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Хеш-таблица, метод цепочек, первичный индекс и вторичный индекс - C# | AnatoliyAnatoliy | Помощь студентам | 2 | 09.01.2018 15:30 |
Получить цвет за пределами формы? | Alexandr17-10 | Общие вопросы Delphi | 4 | 30.11.2013 17:24 |
Как выбрать хостинг за пределами РФ | Uniorchik | Свободное общение | 16 | 06.09.2013 10:15 |
Курсор за пределами рабочего стола | HollyPaladin | Win Api | 11 | 31.12.2010 21:14 |
Индекс за пределами диапазона | NZero | Общие вопросы .NET | 5 | 15.12.2010 09:55 |