如何初始化List <double [] []>?</double [] []>

时间:2012-12-23 12:28:41

标签: c# list matrix

我试图这样做:

rotation[0] = new double[3][];
for (int i = 0; i < 3; i++)
{
    rotation[0][i] = new double[3];
}

但它不起作用。

1 个答案:

答案 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());