[C#]配列の初期化いろいろ


C#では配列の初期化の方法が(静的型言語としては)簡単にできます。
いわゆる普通の配列、IList型、ISet型、IDectionary型の初期化方法を記述します。

配列
  // 普通の配列
  var intArray = new int[2];
  intArray[0] = 5;
  intArray[1] = 49;

  // ブレースで初期値を設定
  var strArr = new string[] {"ゴシックは", "魔法乙女"};

  // 生成側から型省略。その為、宣言側はvar不可。
  string[] otome5 = {"ラナン", "カトレア", "スフレ", "プルメリア", "ロザリー"};

  // ブレ―ス内の値で配列要素の型を推測。
  var akuma5 = new[] {"ジギタリス", "リリー", "ルチカ", "カルミア", "ダチュラ"};
ジャグ配列、四角配列

殆ど使わないと思いますが、ジャグ配列、四角配列の初期化方法です。

  // ジャグ配列
  int[][] jagged = new int[][]
  {
    new[] {1, 2, 3},
    new[] {4, 5, 6, 7}
  };

  // 四角配列
  int[,] grid = new int[,]
  {
    {1, 2, 3},
    {2, 2, 3},
    {3, 2, 3}
  };
コレクション

IList、ISet、IDictionaryはnewの()の後ろにブレースで初期化できます。
コレクション型であってもQueue、Stack、LinkedListなどは上記3つのインターフェイスのどれも実装していないため、コンパイルエラーになります。

  // IList
  var iList = new List<string>()
  {
    "ヴォルクルス", "セイラザード", "ウィンダム"
  };

  // ISet
  var iSet = new HashSet<string>()
  {
    "イシュトバーン", "ヘカトリオン"
  };

  // IDictionary
  var iDic = new Dictionary<int, string>()
  {
    {1, "ポムラ"},
    {2, "いく"},
  };