基本的なことですが、配列の初期化方法について説明します。
まずは、基本的な1次元配列の初期化です。
// 1次元配列の原始的な方法で初期化 string[] names1 = new string[3]; names1[0] = "John"; names1[1] = "Paul"; names1[2] = "Mary"; // 一般的な1次元配列の初期化(配列のサイズは明示しない方が良い) string[] names2 = new string[] { "John", "Paul", "Mary" }; // 実は右辺の new string[] は省略可能 string[] names3 = { "John", "Paul", "Mary" }; // 実は左辺をvar(型推論)する場合は new string[] は省略できない var names4 = new string[] { "John", "Paul", "Mary" };
次に、2次元配列の初期化と、あまりつかいませんがジャグ配列の初期化についてです。
// 2次元配列の初期化 int[,] num1 = new int[,] { {1, 2}, {3, 4}, {5, 6} }; // 右辺の new int[,] は省略可能 int[,] num2 = { {1, 2}, {3, 4}, {5, 6} }; // 左辺をvar(型推論)する場合は new int[,] は省略できない var num3 = new int[,] { {1, 2}, {3, 4}, {5, 6} }; // ジャグ配列 int[][] jag1 = new int[][] { new int[] {2, 4, 6}, new int[] {1, 3, 5, 7, 9} }; // 右辺の new int[][] は省略可能 int[][] jag2 = { new int[] {2, 4, 6}, new int[] {1, 3, 5, 7, 9} }; // 左辺をvar(型推論)する場合は new int[,] は省略できない var jag3 = new int[][] { new int[] {2, 4, 6}, new int[] {1, 3, 5, 7, 9} };
次に、特定の同じ値ですべて初期化する方法です。ここでは Enumerable.Repeat を使用します。
// すべて -1 で 長さ100 の配列を初期化 int [] minus = Enumerable.Repeat<int>(-1, 100).ToArray(); // すべて "Taro" で 長さ100 の配列を初期化 string [] taro = Enumerable.Repeat<string>("Taro", 100).ToArray();