Creating an jagged array of multi-d arrays in c#?

I thought this was possible in c#:

int ndetails = terrainData.detailPrototypes.Length;
int [][,] details = new int[ndetails][terrainData.detailResolution,terrainData.detailResolution];
...create detail data here....
for (int i =0; i < ndetails; i++) {
   terrainData.SetDetailLayer(0,0,System.Array. details[i]);
}

But I get an ‘invalid rank specifier’ error in Unity.

If I do a rectangular array, I have to recompose a array like this, which seems wasteful:

int ndetails = terrainData.detailPrototypes.Length;
int [,,] details = new int[ndetails,terrainData.detailResolution,terrainData.detailResolution];
...
for (int i =0; i < ndetails; i++) {
  int [,] tmp = new int[terrainData.detailResolution,terrainData.detailResolution];
   ...transfer 3d array array to 2d array here...
   terrainData.SetDetailLayer(0,0, tmp);
}

I don’t think you can initialise the 2D arrays from the declaration. You could use

int [][,] details = new int[ndetails][,];

…and then initialise all the 2D arrays individually from a loop.