我正在尝试访问ListBox中的特定项目(asp.net,C#) 并检查它是否为空:
if (ListBox.Items[0] == null )
{
if (HowMany.Text == arrOfWords[0])
{
ListBox.Items.Add(arrOfWords[0]);
ErrorMessege.Text = "Good!";
}
}
它返回:索引超出范围。必须是非负数且小于集合的大小。 参数名称:index
为什么? 谢谢!
答案 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!";
}
}