获取ListBox中的特定项值

时间:2012-01-07 01:38:06

标签: c# asp.net

我正在尝试访问ListBox中的特定项目(asp.net,C#) 并检查它是否为空:

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

它返回:索引超出范围。必须是非负数且小于集合的大小。 参数名称:index

为什么? 谢谢!

2 个答案:

答案 0 :(得分:1)

在这种情况下,Items集合看起来是空的,因此即使0超出了集合的范围。您需要测试索引是否有效以及该项是否为空。

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

答案 1 :(得分: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!";
          }
        }
}

编辑:从您的评论“ 确定那里有0个项目给我,我的意图是,如果那里有0个项目,那么它应该添加一个项目来自arrOfWords

因此,如果您的意思是,即使列表框中没有项目,您也需要将数组中的项目添加到列表框中,然后取出First if条件

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