日期:2014-05-17  浏览次数:20423 次

如何动态设置List<T> 中的T
C#中可以这样得到一个类型为A的泛型集合,List<A> alist=new List<A>();我想问一下,如果事先不知道T的类型,比如通过参数传进来一个字符串:"MyClass",当然这个字符串对应一个类的,那么如何根据传进来的字符串,动态得到一个List<T>这样的泛型呢?

------解决方案--------------------
try

  static void Main(string[] args)
        {
            var list = GetList("ConsoleApplication1.Program");//命名空间+类名
            Console.ReadLine();
        }
        static IList GetList(string str)
        {
            var genericTypeList = typeof(List<>).MakeGenericType(Type.GetType(str));
            return Activator.CreateInstance(genericTypeList) as IList;
        }