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

// 抽取试题
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++;
}
}
}

第1个回答  2013-06-05
索引是从0开始的,而length,与索引最大值的关系应该是 length-1
questionIndex = random.Next(QuizHelper.allQuestionIds.Length);
你这句话,就把索引的值,赋成了长度值,超出了索引范围,所以报错了,改成length-1
第2个回答  2013-06-05
你的questionIndex 是一个长度概念 比如string s="12345678"
这个长度是8 索引号是0-7
所以你下面的代码【】索引最多是Length-1 而不能是Length本回答被提问者和网友采纳

C# 中索引超出了数组界限怎么解决
1. 抛出异常。在C#中,可以使用throw语句抛出异常,告知调用者索引超出范围。2. 调整索引。如果发现索引值过大,可以尝试减小它,使其在有效范围内。3. 使用循环控制。在遍历数组时,可以使用循环条件来防止索引超出范围。4. 使用try-catch块。在执行可能引发异常的代码时,可以使用try-catch块捕获并处理...

C#执行中出现“索引超出数组界限”的错误。应该如何修改?
你这句话,就把索引的值,赋成了长度值,超出了索引范围,所以报错了,改成length-1

C#中如何解决"索引超出了数组界限"这个异常
"索引超出了数组界限"并不是说索引有多长,而是说这个索引在数组的界限当中找不到,在楼主的代码中,无法保证String[] args 一定有值(即可能不存在args[0]),如果楼主是想在string[] args有值的情况下才输出第一个参数的话,可以改成 class Program { static void Main(string[] args){ string...

C#索引超出了数组界限
搞笑。你必须确保str3这个字符串被分割成5段以上,存放在sArray数组里。否则就会索引超出数组界限。你看sArray[4]已经访问了数组的第5个元素了。话说回来,良好的编程习惯应该有基本的逻辑判断与异常处理代码。看你的代码,一样都没有。

索引超出了数组界限如何解决?
索引超出数组界限,一个是判断一下循环语句中的循环上限是否出错,再一个就是直接更改数组大小。“索引超出了数组界限"并不是说索引有多长,而是说这个索引在数组的界限当中找不到,可以适当增大数组的大小,使得下面用到的索引能够处在数组的界限中。当然数组不是越大越好,盲目增大数组大小势必会加大内存...

c#运行时出错的问题?
一、错误提示表明在程序运行时,对数组进行访问操作时,引用的下标超出了数组定义的边界。这意味着尝试访问一个不存在的数组元素,这通常会导致程序崩溃或产生不可预测的结果。二、1. 错误原因:当程序试图访问数组时,会使用一个下标来指定要访问的数组元素的位置。如果这个下标超出了数组定义的起始和结束...

索引超出了数组界限解决方法
1定义一个int整形类型的数组,初始化10个整数,从1到10然后循环依次输出11次,由于数组里只有10个数2第11次是抛出了数据越界的错误3将程序修改一下,保证程序不会非。1首先,找到使命召唤7文件夹的所在位置2其次,点击文件夹选择删除3最后,在重新下载使命召唤7即可解决该游戏索引超出了数组界限的问题。

C#高手,请教一下关于"索引超出了数组界限"?
n+1,当n=49时,A[m,50]不就越界了么。改成if((i<>m || j<>n) && Array[i,j]+Array[m,n]==100)就行了

C#索引超出数组界限
5 选择3, 5 则selectedQuestionIds = {3,5}, 如果贴出来的代码是遍历selectedQuestionIds, 而questionindex是selectedQuestionIds中的值, 则selectedQuestionIds.length=2, selectedQuestionIds[3]就直接报错了 新人常见的逻辑错误, QuizHelp.selectedQuestionIds[questionindex] 换成questionindex即可 ...

C#索引超出数组界限
这个最好自己调试一下,这个错误已经说的很清楚了,比如 int[] a = new int[4];a[4]=1;\/\/ 这里会报索引超出数组界限,因为a是从0~3,没有4这个项

相似回答