Object Class を登録

v1=  12  v2=  43  sum=   55
v1=  71  v2=   3  sum=   74
v1=  76  v2=  62  sum=  138
v1=  43  v2=  43  sum=   86
v1=  68  v2=   6  sum=   74
----------------------------
v1=  12  v2=  43  sum=   55
v1=  71  v2=   3  sum=   74
v1=  76  v2=  62  sum=  138
v1=  43  v2=  43  sum=   86
v1=  68  v2=   6  sum=   74

C# で ArrayList に Object Class(Struct) を登録します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. Object Class の説明はこれからですが、ArrayList のついでに取り上げてみました。
    Object Class は Object Class を参照して下さい。
  2. フォルダーに次のファイルを格納して下さい。
    /********************************************/
    /*★ ArrayList に Class を登録    前田 稔 ★*/
    /********************************************/
    using System;
    using System.Collections;
    
    class Prog
    {
        public class Cls
        {
            public int     v1;
            public int     v2;
            public int     sum;
        }
    
        public static void Main()
        {
            ArrayList   array;
            Cls         cls;
            int         i;
            Random      rand = new Random();
    
            array = new ArrayList();
    
            for(i=0; i<5; i++)
            {   cls = new Cls();
                cls.v1 = rand.Next(100);
                cls.v2 = rand.Next(100);
                cls.sum = cls.v1 + cls.v2;
                array.Add(cls);
            }
    
            foreach (Cls CLS in array)
            {
                Console.WriteLine("v1={0,4}  v2={1,4}  sum={2,5}", CLS.v1, CLS.v2, CLS.sum);
            }
        }
    }
    
  3. C# で ArrayList に Object Class(Struct) を登録します。
    Object Class と Struct は基本的には同じものです。
    ArrayList を使うときは System.Collections; を指定して下さい。
    using System.Collections;
  4. ArrayList に登録する Object Class を定義します。
    二件のデータ(v1,v2)とその和(sum)を Class で定義しました。
        public class Cls
        {
            public int     v1;
            public int     v2;
            public int     sum;
        }
        
  5. ArrayList の宣言です。
    int 型に限らず、構造体や Object Class を登録するときも同じように定義します。
    ArrayList array;
  6. ArrayList を生成(インスタンス化)します。
    array = new ArrayList();
  7. cls は Class に値を設定するための作業領域です。
    new Cls(); で領域を割り当てて、v1, v2 に乱数で値を設定します。
    sum に v1+v2 の値を格納します。
    array.Add(cls); で ArrayList に登録します。
        Cls     cls;
    
        for(i=0; i<5; i++)
        {   cls = new Cls();
            cls.v1 = rand.Next(100);
            cls.v2 = rand.Next(100);
            cls.sum = cls.v1 + cls.v2;
            array.Add(cls);
        }
        
  8. foreach は ArrayList に登録されているデータを順番に取得する繰り返し命令です。
    CLS は取得した Class のデータを参照するときの名前です。
        foreach (Cls CLS in array)
        {
            Console.WriteLine("v1={0,4}  v2={1,4}  sum={2,5}", CLS.v1, CLS.v2, CLS.sum);
        }
        
  9. for を使ってループするときは、次のように書きます。
    Cls(Object Class の名前)でキャストして下さい。
        for(i=0; i<array.Count; i++)
        {
            Console.WriteLine("v1={0,4}  v2={1,4}  sum={2,5}",
                ((Cls)array[i]).v1, ((Cls)array[i]).v2, ((Cls)array[i]).sum);
        }
        

【NOTE】

  1. ArrayList に dat を追加登録します。
    array.Add(dat);
  2. ArrayList の大きさは array.Count で取得します。
    for (i = 0; i<array.Count; i++)
    {
    }
  3. ArrayList に登録されている index 番目のデータを削除するソースコードです。
    array.RemoveAt(index);
  4. ArrayList の index 番目に dat を挿入します。
    array.Insert(index, dat);
  5. ArrayList に登録されている全データを削除するソースコードです。
    array.Clear();
  6. 追加/削除を繰り返すとガベージコレクションで処理が一時中断する可能性があるので注意して下さい。 (^_^;)
    ガベージコレクションのタイミングを設定することも出来るのですが、シューティングゲームなどでは配列(Array)を使った方が無難かも知れません。

超初心者のプログラム入門(C# Frame Work)