コレクションについて復習をかねて色々調べてみた
まずは普通の配列
static void Main(string[] args) { int[] ArryTest = new int[5]; for(int i = 0;i < 5; i++) { ArryTest[i] = i + 100; } for (int i = 0; i < 5; i++) { Console.WriteLine(ArryTest[i]); } }
出力
100 101 102 103 104
ArryList
配列より配列数が柔軟に制御可能だけどObject型に格納するのでキャストが必要になったりしてコスト高になる。
static void Main(string[] args) { ArrayList TestArray = new ArrayList(); TestArray.Add("testtest"); TestArray.Add("hogehoge"); TestArray.Add(1234); for(int i = 0;i < 3; i++) { Console.WriteLine(TestArray[i]); } Console.WriteLine("---"); // 配列[2]に新要素を挿入 TestArray.Insert(2, "Insert"); for (int i = 0; i < 4; i++) { Console.WriteLine(TestArray[i]); } Console.WriteLine("---"); // 配列[2]を削除 TestArray.RemoveAt(2); for (int i = 0; i < 3; i++) { Console.WriteLine(TestArray[i]); } Console.WriteLine("---"); }
出力
testtest hogehoge 1234 --- testtest hogehoge Insert 1234 --- testtest hogehoge 1234 ---
ジェネリッククラス
キャスト不要。
static void Main(string[] args) { List<string> TestArray = new List<string>(); TestArray.Add("testtest"); TestArray.Add("hogehoge"); TestArray.Add("1234"); for(int i = 0;i < 3; i++) { Console.WriteLine(TestArray[i]); } Console.WriteLine("---"); // 配列[2]に新要素を挿入 TestArray.Insert(2, "Insert"); for (int i = 0; i < 4; i++) { Console.WriteLine(TestArray[i]); } Console.WriteLine("---"); // 配列[2]を削除 TestArray.RemoveAt(2); for (int i = 0; i < 3; i++) { Console.WriteLine(TestArray[i]); } Console.WriteLine("---"); // foreachもできる foreach(string str in TestArray) { Console.WriteLine(str); } }
出力
testtest hogehoge 1234 --- testtest hogehoge Insert 1234 --- testtest hogehoge 1234 --- testtest hogehoge 1234
Dictionaryクラス
キーと値をペアで管理する
static void Main(string[] args) { var obj = new Dictionary<string, string>(); obj.Add("h","hogehoge"); obj.Add("f","fugafuga"); obj.Add("p","piyopiyo"); Console.WriteLine(obj["f"]); Console.WriteLine(obj["p"]); // キーを削除 obj.Remove("p"); // ContainsKeyで存在チェック if (obj.ContainsKey("p") == true) { Console.WriteLine(obj["p"]); } else { Console.WriteLine("エラー"); } // Addメソッドではエラー。 // インデクサだと上書き。 // obj.Add("f", "fugafuga"); obj["f"] = "fugafuga222"; Console.WriteLine(obj["f"]); }
出力
fugafuga piyopiyo エラー fugafuga222