在C#中,我混淆了双倍和双倍。
我的队友给我这样的功能:
public double[][] Do_Something(double[][] A)
{
.......
}我想使用这个函数:
double[,] data = survey.GetSurveyData(); //Get data
double[,] inrma = Do_Something(data);它导致一个错误:无效的参数。
我不想编辑我队友的代码。
它有办法将double[][]转换成double [,]吗?
谢谢!
发布于 2013-07-24 12:52:23
double[][]和double[,]有着不同的含义。
double[][]是锯齿状的,所以有些元素可以有不同的长度。
double[,]是“矩形”的,所以所有的元素都是相同的长度。
您可以编写一种方法来“转换”两者之间的差异,但您将如何纠正差异?也就是说,你将如何决定“修剪”从长的元素或扩展的短元素,以使其长方形?
发布于 2013-07-24 12:52:36
一个double[][]是一个双An array of arrays数组,而double[,]是一个二维双数组。
例子:
double[] Array1 = new double[] {1,2,3};
double[] Array2 = new double[] {4,5,6};
double[][] ArrayOfArrays = new double[][] {Array1,Array2};
double[,] MultidimensionalArray = new double[,] {{1,2}, {3,4}, {5,6}, {7,8}}; 发布于 2013-07-24 12:54:23
static T[,] Convert<T>(T[][] array)
{
if (array == null)
throw new ArgumentNullException("array");
if (array.Length == 0)
return new T[0, 0];
T[,] retval = new T[array.Length, array[0].Length];
for (int i = 0; i < array.Length; i++)
for (int j = 0; j < array[i].Length; j++)
if (array[i].Length != retval.GetLength(1))
throw new Exception();
else
retval[i, j] = array[i][j];
return retval;
}https://stackoverflow.com/questions/17834488
复制相似问题