LoginSignup
0
0

More than 3 years have passed since last update.

二次元配列 と 配列内の配列

Last updated at Posted at 2020-03-31

前置き

ある日ある時、パズルゲームを作っている時に二重配列を使いたくなって使いました。
他のある日、また二重配列を使いたくなって使いました。
また別のある日、その二つの二重配列を見返しました。

あれぇれぇ~? この二つ種類違うぞぉ? おっかしいなぁ~?( ゚Д゚)

ここから本編

array1
//C#
//ある日あるときの配列
 int[][] bingo = { new int[] { 0, 1, 2 }, new int[] { 3, 4, 5 }, new int[] { 6, 7, 8 }, new int[] { 0, 3, 6 }, new int[] { 1, 4, 7 }, new int[] { 2, 5, 8 }, new int[] { 0, 4, 8 }, new int[] { 2, 4, 6 } };

//他のある日の配列
int[,] day = new int[2,3];

前者の配列は、要素数が一定でないときにも対応できる。
けど、後者の配列は要素数が一定でないときは対応できない。
後者のやつが二次元配列で、前者はあくまでも配列内の配列って扱いなのかな。
配列を定義するだけなら後者でよさそう。('ω')

array2
//C#
//要素数が一定でないときの配列の使い方
//要素数が3個の配列(中身{0,1,2})と2個の配列(中身{3,4})を、同じ配列に入れている
 int[][] arr1 = { new int[] { 0, 1, 2 }, new int[] { 3, 4 }};


//要素数が一定な時の配列の使い方
//前者と同じように中身を定義することもできる(定義していないと全部中身は0になる)
int[,] arr2 = new int[2,3]{ { 0, 1, 2 } { 3, 4, 5} };

ふむふむ、それならば、ある日ある時のビンゴ配列は、要素数が同じだから後者の配列でもよかった……。

ど、どうせ中身定義しなきゃいけなかったわけだし?ゲーム内ではちゃんと動いたわけだし?過去のことを思っちゃダメ。未来のことも思っちゃダメ。今を精一杯生きようじゃないか。(*´ω`)

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0