在C#中是否存在列表数组这样的事情?

时间:2011-02-15 04:00:50

标签: generics

我有一个类有4个列表的构造函数,如:

Public MyClass(List<MyObjA> ObjAs, List<MyObjB> ObjBs,etc.)

我想通过检查IList的第一项来使用反射来确定每个列表的内容并进行一些处理。我可以通过检查每个IList来做到这一点,但是如果我只能传递一个IList数组就可以更好地遍历数组,但这不会有效,因为传入的每个IList都传入了一个特定的泛型类型(例如MyObjA或MyObjB等)。我唯一能想到的就是传递一系列对象,如:

MyClassWithObjArrayConstructor a = new MyClassWithObjArrayConstructor(new object[ObjAs,ObjBs,ObjCs,ObjDBs]);

有更好的方法吗?

2 个答案:

答案 0 :(得分:0)

传递List<List<BaseObj>怎么样?

所有4种对象类型都从BaseObj继承。然后,使用反射,你可以进行处理。

答案 1 :(得分:0)

看起来你需要重新考虑一下,如果MyClass用不同的未知对象类型的多个列表进行实例化,它看起来过于宽泛。

我会有一个类处理一种类型的预定义对象的列表,或者一个仍然只处理一种类型的对象但是使用泛型的类。