【C#】配列, List, Dictionary の初期化方法まとめ

【C#】配列、List、Dictionaryの初期化方法まとめ

Array 型の初期化方法

配列の要素数を指定して初期化する方法

// 要素数5 の int 型配列を生成
int[] nums = new int[5];

string[] texts = new string[5];

// var を使った初期化も可能
var texts = new string[3];

// これはエラー。初期化時に要素数を指定する必要があります。
int[] a = new int[]; // CS1586

上記の書き方の場合、初期化時に要素数を指定しないとエラーになります。

初期化に配列の要素を代入する方法

int[] nums = new int[] { 1, 2, 3 };

string[] texts = new string[] { "a", "b", "c" };

// var を使った初期化も可能
var texts = new string[] { "a", "b", "c" };

初期化時にあらかじめ要素も入れて作成する方法です。
この場合、長さの指定は初期化リスト内の要素の数から推論されるため必要ありません。

また、new 式と配列型を省略した書き方も可能です。
配列初期化子で指定された要素から暗黙的に推論し、配列を作成します。

int[] nums = { 2, 4, 6, 8, 10 };

空の配列を生成し、後から値を代入する方法

 string[] texts = new string[3];

 texts[0] = "a";
 texts[1] = "b";
 texts[2] = "c";

List 型の初期化方法

空の List を初期化する方法

// 要素数3 の int型 List を作成
List<int> numList = new List<int>(3);

// 要素数の省略も可能
List<int> numList = new List<int>();

var textList = new List<string>();

List の初期化時は要素数の省略が可能です。

初期化に List の要素を代入する方法

List<int> numList = new List<int>() { 1, 2, 3 };

List<string> textList = new List<string> { "a", "b", "c" };

// var を使った初期化も可能
var textList = new List<string> { "a", "b", "c" };

List も配列同様に初期化時にあらかじめ要素を入れて作成できます。

空の List を生成し、後から値を代入する方法

List<string> textList = new List<string>();

textList.Add("a");
textList.Add("b");
textList.Add("c");

要素の追加には Addを使用します。

Dictionary の初期化方法

空の Dictionary を初期化する方法

Dictionary<int, string> employees = new Dictionary<int, string>(3);

// 要素数の省略可能
Dictionary<int, string> employees = new Dictionary<int, string>();

// var を使った初期化も可能
var employees = new Dictionary<int, string>();

初期化に Dictionary の要素を代入する方法

Dictionary<int, string> employees = new Dictionary<int, string>()
{
    {1, "Ken"},
    {2, "Tom"},
    {3, "Jon"}
};

Dictionary も初期化時にあらかじめ要素を入れて作成できます。

空の Dictionary を生成し、後から値を代入する方法

Dictionary<int, string> employees = new Dictionary<int, string>();

employees.Add(1, "Ken");
employees.Add(2, "Tom");
employees.Add(3, "Jon");

要素の追加には Addを使用します。

多次元配列の初期化方法

空の多次元配列を初期化する方法

// 3 行 2 列の 2 次元配列
int[,] array = new int[3, 2];

// 2、4、3 の 3 次元配列
int[,,] array1 = new int[2, 4, 3];

// 要素数の指定がないためエラー
int[,] array = new int[,]; // CS1586

多次元配列では次元数-1だけ「,」で区切って初期化します。
「,」の数が1つなら二次元配列、「,」の数が2つなら三次元配列、、となります。

配列と同じく、初期化時に要素数の指定が必要です。指定がない場合はエラーになります。

初期化に多次元配列の要素を代入する方法

int[,] array = new int[,]
{
    { 1, 2 },
    { 3, 4 },
    { 5, 6 },
};

// new int[,] の省略可能
int[,] array = { { 1, 2 }, { 3, 4 }, { 5, 6 } };

また、new 式と配列型を省略した書き方も可能です。
配列初期化子で指定された要素から暗黙的に推論し、配列を作成します。

空の多次元配列を生成し、後から値を代入する方法

int[,] array = new int[3, 2];

array[0, 0] = 1;
array[0, 1] = 2;
array[1, 0] = 3;
array[1, 1] = 4;
array[2, 0] = 5;
array[2, 1] = 6;

参考資料

あわせて読みたい

【C#】要素に重複のないリストを作成する3つの方法 【C#】要素に重複のないリストを作成する3つの方法【List】 Linqメソッド簡易解説&使い方まとめ 【C#】 LINQ のメソッド簡易解説 & 使い方まとめ【Unity】