同僚が、多数の汎用リストコレクションを含むオブジェクトを持っています。リスト内の各タイプは、特定のインターフェースを実装します。彼は、他のすべてのリストを含むリストを作成して、オブジェクトが実装するメソッドをループして呼び出すことができるようにしたいと考えています。以下は簡単な例です。
List<Dx> dxs = new List<Dx>();
dxs.Add(new Dx());
dxs.Add(new Dx());
List<Proc> procs = new List<Proc>();
procs.Add(new Proc());
List<List<IClean>> lists = new List<List<IClean>>();
lists.Add(procs); // Error here
lists.Add(dxs); // Error here
foreach (List<IClean> list in lists)
{
foreach (IClean i in list)
{
i.Clean();
}
}
DxとProcはどちらもICleanを実装しています。これが目標です。このようなことは可能ですか?または、これは悪いプログラミングですか?
.NETバージョン4.0