Вы должны инициализировать double[][]
поэтапно. Мы можем сделать это, добавив только одну строку кода и изменив одну другую:
public static double[][] ConvertToDouble(int[,] arr , int r , int c)
{
double[][] matrix = new double[r][];
for(int i=0;i<r;i++)
{
matrix[i] = new double[c];
for(int j=0;j<c;j++)
{
matrix[i][j] = Convert.ToDouble(arr[i,j]); //the error comes in this line
}
}
return matrix;
}
Мы также можем упростить вызов метода, выведя r
и c
:
public static double[][] ConvertToDouble(int[,] arr)
{
//GetUpperBound() returns the index of the last item, rather than the number of items
var r = arr.GetUpperBound(0) + 1;
var c = arr.GetUpperBound(1) + 1;
double[][] matrix = new double[r][];
for(int i=0;i<r;i++)
{
matrix[i] = new double[c];
for(int j=0;j<c;j++)
{
matrix[i][j] = Convert.ToDouble(arr[i,j]); //the error comes in this line
}
}
return matrix;
}