ArrayList尝试访问一个索引太多

时间:2014-04-12 18:32:01

标签: c# arraylist

我收到以下代码的错误,因为我的计数器增加了1次太多了,我不明白为什么。

代码:

...private static int counter = 0;

protected void ButtonSubmit_Click(object sender, EventArgs e)
        {
            SendWord();
            object o = wordList[counter];
            LabelWord.Text = o.ToString();
            if (counter < wordList.Count)
            {
                counter++;
            }
         }

如果我使用counter < wordList.Count -1)它不会给我一个错误,但它也不会加载我的列表中的最后一个单词。我做错了什么?

错误:

An exception of type 'System.ArgumentOutOfRangeException' occurred in mscorlib.dll but was not handled in user code

Additional information: Index was out of range. Must be non-negative and less than the size of the collection.

2 个答案:

答案 0 :(得分:2)

您可以像这样更改代码:

if (counter < wordList.Count)
{
    object o = wordList[counter++];
    LabelWord.Text = o.ToString();
}

这不会给你OufOfRange例外,并且应该返回所有项目。

答案 1 :(得分:0)

如果

,您的代码存在问题
 if (counter < wordList.Count)
            {
                counter++;
            }

count为10

列表是0到9索引

当计数器为9时,

在最后一个循环中...条件为真且它增加1并终止循环

我的情况2 if (counter < wordList.Count-1)它正确,,,增加到8并终止

使用这个

if (counter <=wordList.Count-1