解析エンジニアの自動化 blog

コツコツと自動化した方法を残す blog

C# の Class の複雑なメンバの操作性



こんにちは。
仕事の自動化にやりがいと達成感を感じるガッくんです。


この記事の目次



背景・目的


下記の記事でメンバの操作性を確認したんですが、確認を忘れていたことがあったので、再度まとめました。

C# の Class の操作性 - 解析エンジニアの自動化 blog



動作環境


Windows 7
Visual Studio 2017



プログラム

ソースコード


using System;
using System.Collections.Generic;
 
namespace How_to_use_ClassList
{
    class Program
    {
        static void Main(string[] args)
        {
            // 変数への値の代入
            sample s = new sample();
            s.list.Add(new List());
            s.list[s.list.Count - 1].Add(10);
            s.list[s.list.Count - 1].Add(20);
            s.list[s.list.Count - 1].Add(30);
            s.list.Add(new List());
            s.list[s.list.Count - 1].Add(40);
            s.list[s.list.Count - 1].Add(50);
            s.list[s.list.Count - 1].Add(60);
 
            List s_list = new List();
            s_list.Add(s);
 
            // コンソール表示
            for (int i = 0; i < s_list.Count; i++)
            {
                for (int j = 0; j < s_list[i].list.Count; j++)
                {
                    for (int k = 0; k < s_list[i].list[j].Count; k++)
                    {
                        if (k == 0) Console.Write(s_list[i].list[j][k]);
                        else Console.Write(" , " + s_list[i].list[j][k]);
                    }
                    Console.WriteLine("");
                }
            }
 
            // 値を書き換えてみる
            s_list[0].list[0][0] = 200;
 
            // コンソール表示
            Console.WriteLine("");
            Console.WriteLine("");
            for (int i = 0; i < s_list.Count; i++)
            {
                for (int j = 0; j < s_list[i].list.Count; j++)
                {
                    for (int k = 0; k < s_list[i].list[j].Count; k++)
                    {
                        if (k == 0) Console.Write(s_list[i].list[j][k]);
                        else Console.Write(" , " + s_list[i].list[j][k]);
                    }
                    Console.WriteLine("");
                }
            }
 
            // 終了待機
            Console.ReadKey();
        }
    }
 
    class sample
    {
        public List> list = new List>();
    }
}



結果


図1 結果



コメント

どんなに複雑なデータ構造でも、値のやり取りが簡単です。

構造体だとこうはいかないです。



以上