Я столкнулся с этим странным исключением IndexOutOfRangeException. Код я работаю с изначально был код C, мне удалось перевести его на C#IndexOutOfRangeException по некоторым странным причинам
Так Я, followin петля дает мне ошибку:
for (int i = 0; i < 6; i++)
{
L[0] = new double[]{ T[0] + rxp[0][i] - (p[0][i])
}
Согласно закладке «Местные жители», RXP имеет только 3 'детей' только с 1 предметом/ребенком. Так что я думаю, проблема здесь:
void getrxp()
{
for (int i = 0; i < 6; i++)
{
rxp[0] = new double[]{ M[0][0] * (re[0][i]) + M[0][1] * (re[1][i]) + M[0][2] * 0};
rxp[1] = new double[]{ M[1][0] * (re[0][i]) + M[1][1] * (re[1][i]) + M[1][2] * 0};
rxp[2] = new double[]{ M[2][0] * (re[0][i]) + M[2][1] * (re[1][i]) + M[2][2] * 0};
}
}
я получаю это создать double rxp[3][6];
массив неправильно или есть что-то еще?
Исходный код выглядит следующим образом (C):
void getrxp()
{
for(int i=0;i<6;i++){
rxp[0][i] = M[0][0]*(re[0][i])+M[0][1]*(re[1][i])+M[0][2]*0;
rxp[1][i] = M[1][0]*(re[0][i])+M[1][1]*(re[1][i])+M[1][2]*0;
rxp[2][i] = M[2][0]*(re[0][i])+M[2][1]*(re[1][i])+M[2][2]*0;
}
}
Почему вы думаете, что 'rxp [0] [i]' в C эквивалентно 'rxp [0]' в C#? – Amit
Согласно функции C, которую он пытается преобразовать в C#, он не пытается создать массив массивов. Таким образом, дубликат метки неправильный. – sithereal
Хорошо, если вы посмотрите на Jagged Arrays в MSDN, вы можете понять, почему я сделал это так. – Zoszko