我试图这样做:
rotation[0] = new double[3][];
for (int i = 0; i < 3; i++)
{
rotation[0][i] = new double[3];
}
但它不起作用。
答案 0 :(得分:0)
假设rotation
是您的List<double[][]>
,您可以这样做:
var tmp = new double[3][];
for (int i = 0; i < 3; i++) {
tmp[i] = new double[3];
}
rotation.Add(tmp);
您也可以使用LINQ:
rotation.Add(Enumerable.Range(0, 3).Select(i => new double[3]).ToArray());
上面的两个片段都将double
s的单个3x3数组添加到List<double[][]>
。
如果您需要三个项目的列表,可以这样做:
List<double[][]> rotation = new List<double[][]>();
for (int r = 0 ; r != 3 ; r++) {
var tmp = new double[3][];
for (int i = 0; i < 3; i++) {
tmp[i] = new double[3];
}
rotation.Add(tmp);
}
或
List<double[][]> rotation = new List<double[][]>();
for (int r = 0 ; r != 3 ; r++) {
rotation.Add(Enumerable.Range(0, 3).Select(i => new double[3]).ToArray());
}
甚至
var rotation = Enumerable
.Range(0, 3)
.Select(r => Enumerable.Range(0, 3).Select(i => new double[3]).ToArray());