C#の配列


C#を始めたばかりで簡単なことも身についていないのでメモっておく。
プログラムにはつきものの配列。その配列について、本当に簡単なことをまとめてみた。

初期化

その (1)
 // 普通に初期化
 // array (配列)
 string[] arr = { "トヨタ", "ホンダ" };
その (2)
 // 例えば Main(string args[]) の引数テストで代入したいときなど
 // args は arguments (引数) の略
 // VBと違い要素数が2つなら、そのまま2と書く
 string[] args;
 args = new string[2] { "日産", "マツダ" };
その (3)
 // 2次元配列の初期化
 string[,] arr = { { "GM", "フォード" }, { "BMW", "ベンツ" } };
その (4)
 // 要素数ゼロ
 string[] arr1 = { };
 string[] arr2 = Array.Empty<string>();

要素数を数える

C#
 // forループなどで使う
 var hoge = arr.Length;
 hoge = arr2.GetLength(0); // 1次元
 hoge = arr2.GetLength(1); // 2次元

繰り返し処理

C#
 foreach (string s in arr) 
 {
   // 何かの処理
 }

 // VBと違ってマイナスしなくていいのがいいね!!
 for (int i = 0; i < arr.Length; i++)
 {
   // 何かの処理
 }

インデックス

3つの要素を持つ配列
 // 初期化時は要素数を3とする
 // 3つの要素なら、インデックスは 0、1、2
 string[] arr; 
 arr = new string[3] { "男", "女", "マツコ" }
 var hoge1 = arr[0];
 var hoge2 = arr[1];
 var hoge3 = arr[2];
 // var hoge4 = arr[3]; はエラー

 arr[2] = "009"; // 値設定
 var cyborg = arr[2]; // 値取得
2次元配列で値取得・設定
 arr[0][0] = "007"; // 値設定
 var SeanConnery = arr[0][0]; // 値取得

ジャグ配列

C#
 // ジャグ配列の初期化
 string[][] arr = { new string[3] { "あ", "い", "う" },
                    new string[2] { "か", "き" },
                    new string[4] { "さ", "し", "す", "せ" } };

 // 2次元のサイズを後で決める
 string[][] arr2 = new string[3][];
 arr2[0] = new string[3];
 arr2[1] = new string[2];
 arr2[2] = new string[4];

サイズ変更

C#
 // 要素数を10に変更する
 // VBの「ReDim Preserve」と等価で代入済みの値を維持する
 Array.Resize(ref arr, 10);

Arrayクラスでまだまだ色々できそうだが、今回はここまで