Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用矩阵的IndexOutfrange异常_C#_Multidimensional Array_Indexoutofrangeexception - Fatal编程技术网

C# 使用矩阵的IndexOutfrange异常

C# 使用矩阵的IndexOutfrange异常,c#,multidimensional-array,indexoutofrangeexception,C#,Multidimensional Array,Indexoutofrangeexception,我的程序一直显示索引不足。例如,变量arreglo。下面我想将特定于矩阵的索引保存在数组中,然后在文本框中打印该数组 我很确定这是新手犯的错误 代码 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 (in

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

我很确定这是新手犯的错误

代码

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);
int[]arreglo=newint[77];
int[,]trans=新的int[11,7];
int j=0;
int-renglon=0;
var cadena1=txtBCadena1.Text.Select(n=>Convert.ToInt32(n)).ToArray();
对于(int i=0;i
数组arreglo的索引出错(按照您所说的),原因是索引i>=77。您已经定义了一个从i=0到76(77个值)的数组arreglo。 似乎从以下几行中出现了错误:

  i++;
  if((arreglo[i] == 9) || (arreglo[i] == 8) || (arreglo[i] == 7))
在两行之间放置一个“Console.WriteLine(i)”以检查i的值是否大于等于77


我不知道你为什么要做I++,因为你的循环会自动增加I的值。

I++中的
用于(i…
循环看起来可疑…您好!您在哪一行有此异常?哪一行导致异常,以及异常发生时的索引是什么?i?我也怀疑
cadena1
。它的值是什么?“新手错误”正在增加块内的循环变量。由于有一个条件是
i
,这很好,但在循环体内增加
i
,然后尝试在
arreglo
数组中使用
i
的值。因此当
i
处于最大值时,基于
for
条件,并在循环内增加它,它将大于
arreglo
的最大索引。