从对象实例化通用列表

时间:2011-07-26 08:42:28

标签: c# generics

我有以下代码

    public void MyMethod(object myClass)
    {
       if(myClass.GetType().IsSubclassOf(typeof(MyBaseClass)))
       {
          // Instantiate a generic list here....
          // Assume that myClass is type Class1, e.g. List<Class1> abc = new List<Class1>();
       }
    }

在if语句中,我想创建一个myClass类型的List。这可能吗?我假设它是通过反射但我看不出怎么做。

1 个答案:

答案 0 :(得分:4)

Type genericListType = typeof(List<>).MakeGenericType(new Type[] { myClass.GetType() });
object list = Activator.CreateInstance(genericListType);