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>();
}
}
コメント
どんなに複雑なデータ構造でも、値のやり取りが簡単です。
構造体だとこうはいかないです。
以上