Добавить элементы в список выбора .. ошибки - PullRequest
0 голосов
/ 07 октября 2011
string cstring = e.Result;
            string[] delim = {"<br>","*"};
            string[] cstringl = cstring.Split(delim, StringSplitOptions.None);
            for (int i = 0; i < cstringl.Length; i++)
            {
                country_picker.Items.Add(cstringl[i]);
            }

Я использую вышеупомянутый код для добавления элементов в список с именем выбора страны, но я получаю исключение indexoutofrange. Почему я получаю эту ошибку, когда проверил длину, используя i <= cstring1.Length </p>

1 Ответ

2 голосов
/ 07 октября 2011

Я вижу 2 проблемы с вашим кодом.

Обновите его, как показано ниже:

for (int i = 0; i < cstringl.Length; i++) 
{ 
    country_picker.Items.Add(cstringl[i]); 
} 

2 изменения:

  1. сравнение в цикле for должно быть «меньше» длины, а не «меньше или равно», так как это вызовет ошибку выключения из-за того, что Length является счетчиком, но массив индексируется нулем , Это причина вашей исключительной ситуации IndexOutOfRangeException.

  2. Использование переменной цикла в качестве ссылки на индекс при добавлении элемента. Таким образом, один и тот же (первый) элемент не может быть добавлен несколько раз.

Обновление
Посмотрев на ваш код еще раз, другая возможная проблема может быть вызвана начальным значением e.result. Попробуйте использовать StringSplitOptions.RemoveEmptyEntries, чтобы не рисковать при вводе пустых значений. Также добавьте проверку, что cstringl содержит хотя бы один элемент.

...