初心者向け。C#で配列と多次元配列の使い方

1390 回閲覧されました
みなさんこんにちは、jonioです。
業務でC#を扱う事になり急遽勉強しないといけなくなったので現在勉強しているのですが多次元配列の書き方をまとめます。
まずは配列の書き方からです。
目次
配列の書き方
配列を定義します。
7行目ですが配列を定義する時は「型名[] 配列名 = {“要素名”,”要素名”,・・・}」書きますが今は配列の中の要素が全て文字列なので「string[]」としています。
配列を定義して出力する時は↓とします。
これで「勇者,戦士,魔法使い」と表示されます。
別の出力方法として↓の様にfor文を使う事ができます。
またforeach文でも出力ができます。
それでは多次元配列ですがまずは2次元配列です。
2次元配列
さっきの配列の例は「string[] teamA = {“勇者”,”戦士”,”魔法使い”};」で配列の要素に文字列を選択していますが2次元配列では配列の要素に別の配列の要素を使う事ができます。
これで「勇者,戦士,魔法使い」と表示されます。
また配列の要素に配列を丸ごと使う事ができます。
これで「勇者,商人」と表示されます。
配列の要素に配列を使う時は12行目の様に「型名[][] 配列名」とします。
そして出力する時は14行目・15行目の様に配列名[インデックス番号][インデックス番号]とします。
[インデックス番号]は12行目の「{teamC,teamD,teamE}」の中からteamCを選んでいるという意味です。
[インデックス番号]は[インデックス番号]で選んだteamCの要素の勇者を選んでいるという意味です。
2次元配列の中に要素を定義する
teams配列ですが要素にteamC配列・teamD配列・teamE配列を使っていますが配列を定義してから要素に使わなくてもいいです。
そんな場合は↓の書き方をします。
これで「魔法使い」と表示されますが 8行目〜10行目の様に2次元配列の中に配列の要素を直接定義できます。
この場合の出力方法(13行目)は配列を定義してそれを2次元配列の要素に使った場合と同じです。
要素の変更
↓でできます。
13行目ですがこれで「魔法使い」と表示されていたのが「人間」に変わります。
for文で表示
コードを↓にします。
これで「勇者,戦士,魔法使い」改行して「盗賊,忍者,商人」と表示されます。
次はforeach文を使った場合です。
foreach文で表示
コードを↓にします。
表示される内容はfor文の時と同じです。
配列の要素の数が少ない場合は8行目・9行目の様に要素を直接書いてもいいですが例えば200個とか要素数がめちゃくちゃ多い場合は直接書くと大変です。
そんな場合は配列の要素数を指定します。
配列の中の要素数が多すぎる場合
まずは1次元の配列で説明しますがコードを↓にします。
これで「0 0 0 0 0」 と表示されます。
7行目の「int[] numberA = new int[5];」の「int」は型名で「5」は要素の個数です。
今は配列の要素が何なのかの指定をしていませんが型を数値(int)にした場合は要素が勝手に「0」になります。
だから今回は表示される要素は全て0になります。
要素の値を指定する場合は例えば↓にします。
次は2次元配列で同じ事を考えますがコードを↓にします。
これで3×4の配列ができます。
7行目の「new int[3][]」の「3」ですがこれで横の3行を作ります。
そして10行目の「new int[4]」の「4」で縦の4列を作ります。
そして出力する時は↓のコードにします。
これで「0 1 2 3」改行して「1 2 3 4 」改行して「2 3 4 5」と表示します。
標準入力から配列を出力する
入力で↓と入力したとします。
これを出力するにはコードを↓にします。
これで↓と出力されます。
最後は3次元配列です。
3次元配列
コードを↓にします。
これで文字で作って3種類の絵が出来ます。
2次元配列の場合にコードが少し加わるだけなので難しくないと思います。
2次元配列で縦×横ができますが3次元配列になると 縦×横の塊を複数個作る事ができます。
今回だと縦×横の塊は8行目〜16行目・17行目〜25行目・26行目〜34行目です。
それぞれの縦×横の塊の中で2次元配列を使って絵を作ってそれが全部で3種類できるという仕組みです。