C#执行中出现“索引超出数组界限”的错误。应该如何修改?

//抽取试题privatevoidSetSelectedQuestionIds(){Randomrandom=newRandom();intquestionIndex=0... // 抽取试题
private void SetSelectedQuestionIds()
{
Random random = new Random();
int questionIndex = 0; // 随机产生的问题的索引值

// 抽取每一道题并保存抽出的题目的Id
int i = 0; // 记录抽取了几道题
while (i < QuizHelper.questionNum)
{
// 在所有题目的数量范围内抽题产生随机数
questionIndex = random.Next(QuizHelper.allQuestionIds.Length);

if (QuizHelper.selectedStates[questionIndex] == false) // 如果没有被选中过,可以选择
{
QuizHelper.selectedQuestionIds[i] = QuizHelper.allQuestionIds[questionIndex];
QuizHelper.selectedStates[questionIndex] = true;
i++;
}
}
}
展开
 我来答
ricetendto2
2013-06-05 · TA获得超过583个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:357万
展开全部
索引是从0开始的,而length,与索引最大值的关系应该是 length-1
questionIndex = random.Next(QuizHelper.allQuestionIds.Length);
你这句话,就把索引的值,赋成了长度值,超出了索引范围,所以报错了,改成length-1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友ce9f999
2013-06-05 · TA获得超过406个赞
知道小有建树答主
回答量:540
采纳率:100%
帮助的人:556万
展开全部
你的questionIndex 是一个长度概念 比如string s="12345678"
这个长度是8 索引号是0-7
所以你下面的代码【】索引最多是Length-1 而不能是Length
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式