C# 入門 & 実践 / C sharp

4-10. [ ジェネリック/コレクション ] 4. List<T> の使用


配列を使うか List<T> を使うか?
固定長でなければならない場合は、配列を使うのですが、だいたい List<T> でいいような気がします。
List<T> は、数が増えれば自動的にサイズを大きくしてくれます。
    class BbHello
    {
        private string name = "";

        public BbHello(string name)
        {
            this.name = name;
        }

        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
            }
        }
    }

    class Tester
    {
        static void Main()
        {
            List<BbHello> bblist = new List<BbHello>();
            // 5 個要素を追加
            for (int i = 0; i < 5; i++)
            {
                bblist.Add(new BbHello("Hello No." + i.ToString() ));
            }

            Console.WriteLine("Count : {0}", bblist.Count);
            Console.WriteLine("Capacity : {0}", bblist.Capacity);

            foreach (BbHello bx in bblist)
            {
                Console.WriteLine("Hello : {0}", bx.Name);
            }

            // さらに 5 個追加
            for (int i = 0; i < 5; i++)
            {
                bblist.Add(new BbHello("Hello No." + i.ToString()));
            }
            Console.WriteLine("Count : {0}", bblist.Count);
            Console.WriteLine("Capacity : {0}", bblist.Capacity);
            // さらに 10 個追加
            for (int i = 0; i < 10; i++)
            {
                bblist.Add(new BbHello("Hello No." + i.ToString()));
            }
            Console.WriteLine("Count : {0}", bblist.Count);
            Console.WriteLine("Capacity : {0}", bblist.Capacity);
        }
    }

Listオブジェクト生成部分もListの要素のインスタンスを書いてあげるだけなので簡単ですね!
List<BbHello> bblist = new List<BbHello>();

Count : 5
Capacity : 8
Hello : Hello No.0
Hello : Hello No.1
Hello : Hello No.2
Hello : Hello No.3
Hello : Hello No.4
Count : 10
Capacity : 16
Count : 20
Capacity : 32

さらに 要素を追加していくと Capacity が 8 → 16 → 32 に自動的に増えてますね!^-^。




4-9. [ ジェネリック/コレクション ] 3. 制約 « 4. C# 入門 Level 2 » 4-11. [ ジェネリック/コレクション ] 5. IComparable インターフェイスの実装!独自のクラスをSort!


C# 入門 & 実践 / C sharp