読者です 読者をやめる 読者になる 読者になる

C#_三次元配列

C# プログラム

配列に悩まされるのでメモ4。めっちゃ分からなくなる。

型[ , , ] 変数 = new 型 [  Z, YX ] ;

Z:要素の数 (奥行のサイズ)
Y:1つのZに格納する要素の数 ( )
X:1つのYに格納する要素の数 ( )

 

型[, , ] 変数 = new 型[3, 3, 5]; のイメージ
クリックで拡大

f:id:koshinRan:20170405214025j:plain

 

各格子は以下の様な座標となる

f:id:koshinRan:20170405214117j:plain

 

a[0,2,3] = hoga ;
とすると
[0,2,3] に hoga 要素が代入される。

f:id:koshinRan:20170405215249j:plain

 

ex)

//a と b は同じサイズの三次元配列
int[,,] a = new int[4,3,4];
int[,,] b = new int[,,]
{
   { {   1,  2,  3 4 }, {   5,  6,  7,  8 }, {  9,10,11,12 } },
   { { 13,14,15,16 }, { 17,18,19,20 }, { 21,22,23,24 } },
   { { 25,26,27,28 }, { 29,30,31,32 }, { 33,34,35,36 } },
   { { 37,38,39,40 }, { 41,42,43,44 }, { 45,46,47,48 } }
  };

//b の要素1から48の出力
foreach (var bb in b)
{
    Console.WriteLine(bb);
}

宣言時の要素の数(サイズ) と 代入・列挙の時の index異なる
ex ) b の 48 を取得したい時は b[3,2,3];

 

 以上。