プロパティを持つ一連のクラスと、一連のクラスのリストを持つメイン クラスがあります。
public class MainClass
{
public List<ClassA> listA {get;set;}
public List<ClassB> listB {get;set;}
public List<ClassC> listC {get;set;}
public object[] loop = {listA, listB, listC};
}
class ClassA
{
public Guid id {get;set;}
public string text {get;set;}
public int number {get;set}
public status {get;set;}
public object[] loop = {id, text, number};
}
class ClassB
{
public Guid id {get;set;}
public string text {get;set;}
public Image pic {get;set}
public status {get;set;}
public object[] loop = {id, text, pic};
}
class ClassC
{
public Guid id {get;set;}
public byte[] data {get;set;}
public DateTime date {get;set;}
public status {get;set;}
public object[] loop = {id, data, date};
}
public enum status
{
nothing=0, instert=1, delete=2, edit=3
}
昨日から状況は変わりましたが、それでもクラスにインデックスを付けたいのですが、私の考えは次の行を追加することでした:
public object[] loop = {listA, listB, listC};
すべてを非静的クラスに変更した後、この目標を達成することは禁止されているようです。また、静的クラスでこれを試していたとき、リストを直接アドレス指定できません。これはどのように行うことができますか?
最後に、次のようにリスト内の特定のプロパティに対処したい:
MainClass mc = new MainClass();
DateTime dt = mc.loop[2][5].loop[2];
次のように、ループ プロパティを使用せずにこれを実行した方がよい場合でも、
DateTime dt = mc[2][5][2];
最終的にループしたい方法:
for(int i=0; i<mc.loop.count(); i++)
{
for (int j=0; j<mc.loop[i].Count(); i++)
{
switch(mc.loop[i][j].loop[3])
{
case: delete
doSomething1(mc.loop[i][j])
case: insert
doSomething2(mc.loop[i][j])
case: edit
doSomething3(mc.loop[i][j])
default
break;
}
}
}