用变量调用数组索引

时间:2017-06-08 15:51:16

标签: c# wpf visual-studio list

我正在尝试从列表中测试特定元素,并将其与用户输入的字符串进行比较。它在if语句中:
if (textboxinput.Text.ToString() == main.steps[current])
在此上下文中,current是一个等于0的整数,并且在if语句完成当前++之后。  这是一个新的wpf表单窗口,通过单击MainWindow wpf表单上的按钮打开。 main是从包含我们列表的MainWindow1类中实例化的: public List<string> steps = new List<string>();  每当我运行此代码时,我都会收到超出范围异常的参数。

简而言之:我正在尝试用变量替换列表的索引,并且它说它超出了范围。 仍在学习c#,这可能是一个简单的修复,它可能是一个我忘记的超级明显的规则,但任何帮助都会受到赞赏,因为同样的异常也会在数组上发生。       这是点击按钮的事件

int current = 0;
private void buttonanswer_Click(object sender, RoutedEventArgs e)
    {

        if (textboxinput.Text.ToString() == main.steps[current])
        {
            textboxoutput.Foreground = Brushes.Green;
            textboxoutput.AppendText(textboxinput + Environment.NewLine);
            textboxinput.Clear();


        }
        else
        {
            textboxoutput.Foreground = Brushes.Red;
            textboxoutput.AppendText(textboxinput + Environment.NewLine);
            textboxinput.Clear();
        }
        current++;
    }

1 个答案:

答案 0 :(得分:0)

确保在循环当前时,它总是小于main.steps数组的长度。请记住,如果数组包含5个元素,则它们的编号为0,1,2,3和4。最有可能的是,您允许电流达到数字5(或者在您的特定情况下,您的数组大小)。这种类型的错误是在使用数组时导致出界异常的原因。