2012-01-07 3 views
1

Я пытаюсь добраться до определенного пункта в ListBox (ASP.NET, C#) и проверить, если это нуль или нет:Получение определенного значения элемента в ListBox

if (ListBox.Items[0] == null) 
{ 
    if (HowMany.Text == arrOfWords[0]) 
    { 
      ListBox.Items.Add(arrOfWords[0]); 
      ErrorMessege.Text = "Good!"; 
    }      
} 

это возвращение, что: Индекс был вне пределов досягаемости. Должен быть неотрицательным и меньше размера коллекции. Имя параметра: индекс

Почему это? Спасибо!

ответ

1

Добавить нулевую проверку перед доступом к элементам массива.

if ((ListBox.Items.Count > 0) && (ListBox.Items[0] == null)) 
{ 
    if((arrOfWords.count>0)&&(arrOfWords[0]!=null)) 
     { 
      if (HowMany.Text == arrOfWords[0]) 
      { 
       ListBox.Items.Add(arrOfWords[0]); 
       ErrorMessege.Text = "Good!"; 
      } 
     } 
} 

EDIT: Ваш комментарий "его нормально, что есть 0 пунктов там для меня, мое намерение состоит в том, что если есть 0 пунктов там, то следует добавить элемент из arrOfWords "

Так что, если вы имеете в виду, даже если есть нулевые элементы в Listbox, вам нужно добавить элемент из массива в ListBox, а затем вынуть первый, если условие

if((arrOfWords.count>0)&&(arrOfWords[0]!=null)) 
{ 
    if (HowMany.Text == arrOfWords[0]) 
    { 
     ListBox.Items.Add(arrOfWords[0]); 
     ErrorMessege.Text = "Good!"; 
    } 
} 
+0

в режиме отладки, он даже не вводит оператор if. даже если я попытаюсь сделать if ((ListBox.Items.Count> 0) && (ListBox.Items [0] == null)) – thormayer

+1

положить точки останова в первом условии if и посмотреть, сколько элементов присутствует в списке и arrOfWords – Shyju

+0

по умолчанию, список, представляющий 0 элементов, когда приложение запущено в первый раз, и «arrOfWords», представляющий как минимум один раз каждый раз. – thormayer

1

Похоже, что в этом случае коллекция Items пуста, поэтому даже 0 находится за пределами рамки. Вам нужно проверить, что индекс действителен, а элемент не равен null.

if (ListBox.Items.Count > 0 && ListBox.Items[0] == null) { 
    ... 
} 
+0

мм .. все еще получаю ту же ошибку messege, если я попробую это. – thormayer

+1

Тогда это, вероятно, один из других индексов. Я бы попробовал то же самое для всех. – JaredPar