34
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-09-10

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, "いく"},
  };
34
33
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
34
33

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?