FROM ME TO YOU

oh my bizarre life !!

C# の配列の基本を復習。配列、リストアレイ、ジェネリック、ディクショナリ

コレクションについて復習をかねて色々調べてみた

まずは普通の配列

        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