-1

私はそうしようとしました:

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

しかし、それは機能しません。

4

1 に答える 1

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[][]>ます。

3つのアイテムのリストが必要な場合は、次のように実行できます。

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());
于 2012-12-23T12:33:41.853 に答える