如何从问题列表中结束数组

时间:2013-04-30 20:24:11

标签: c# arrays list

我有一个数组中的问题列表,当界面上的按钮被点击时,它将转到下一个问题,但是当它在最后一个问题时,它将切换到摘要页面并显示得分正确答案。当数组到达最后一个问题时,它会抛出“超出范围异常的参数未被处理”。我怎么能让阵列停下来让它在最后一个问题之后继续?

这是我继续讨论下一个问题的方法

感谢您的帮助,如果您需要再查看代码,请告诉我们。

2 个答案:

答案 0 :(得分:5)

使用此条件。我假设你的阵列有20个项目,因为你的条件是> 20它打破指数。当你尝试访问数组[20]元素时,数组被zero索引。

if (questionNumber >= qu.Count)

答案 1 :(得分:5)

我会考虑使用foreach循环并稍微重新设计您的解决方案:

public void DisplayQuestion(Question q)
{
    txt_block_question.Text = qu.question;
    btn_Answer_A.Content = q.a;
    btn_Answer_B.Content = q.b;
    btn_Answer_C.Content = q.c;
 }

public void DisplaySummary()
{
    foreach (var q in qu)
    {
        DisplayQuestion(qu);
    }

    NavigationService.Navigate(new Uri("/summary_page.xaml", UriKind.Relative));
}

foreach将为您处理索引。传递每个问题以显示也比依赖某些共享变量更好。