听起来很简单,可能就是这样。
我有这个变量:
byte[,,] data = new byte[360,288]
我想要4个。
我不希望这样:
byte[,,,] data = new byte[360,288,4]
我更喜欢这个:
byte[,,][] data = new byte[360,288][4]
有可能吗?
是的,这是锯齿数组的一个特殊情况,其中一个锯齿维度是多维的。
你应该这样写:
// Initialise 4 arrays of two dimensional arrays
byte[][,] data = new byte[4][,];
// Initialise the arrays
for (var i = data.GetLowerBound(0); i <= data.GetLowerBound(0); ++i)
data[i] = new byte[360, 258];
当然,如果你需要的话,你可以反转维度。
// Initialise 4 arrays of two dimensional arrays
byte[,][] data2 = new byte[360,258][];
// Initialise the arrays
for (var i = data2.GetLowerBound(0); i <= data2.GetLowerBound(0); ++i)
for (var j = data2.GetLowerBound(1); j <= data2.GetLowerBound(1); ++j)
data2[i,j] = new byte[4];