使用矩阵的IndexOutOfRange异常

时间:2018-09-24 03:41:54

标签: c# multidimensional-array indexoutofrangeexception

我的程序一直显示索引不足。例如,变量arreglo。下面,我想将矩阵特定的索引保存在数组中,然后在textBox中打印该数组。

我很确定这是菜鸟的错误...

代码

int [] arreglo = new int[77];
int [,] trans = new int [11,7];

int j=0;
int renglon = 0;

var cadena1 = txtBCadena1.Text.Select(n => Convert.ToInt32(n)).ToArray();

for (int i = 0; i < trans.Length;)
{
   arreglo[i] = trans[renglon, cadena1[j]]; 
   j++;
   renglon = trans[arreglo[i], cadena1[j]];
   i++;

   if((arreglo[i] == 9) || (arreglo[i] == 8) || (arreglo[i] == 7))
   {
      break;
   }
   else
   {
      MessageBox.Show("CADENA NO VÁLIDA");
   }

}
txtBCadena1Resp.Text = Convert.ToString(arreglo);

1 个答案:

答案 0 :(得分:1)

您在数组arreglo上的索引超出错误(按照您的说明),原因是索引i> =77。您已定义了一个数组arreglo,其值从i = 0到76(77个值)。 似乎错误是从行中传来的:

  i++;
  if((arreglo[i] == 9) || (arreglo[i] == 8) || (arreglo[i] == 7))

在两行之间放置一个“ Console.WriteLine(i)”以检查i的值是否> = 77

我不知道为什么要使用i ++,因为循环会自动增加i的值。