List<T> 中的T能否动态生成
请问 List<T>中的T是不是一定要指明一种特定的类型
比如 List<string> List<int>
我遇到的问题是,需要用到List容器,但是类型可能得到运行时才能确定,比如运行时才通过参数知道需要用到的是string或是int类型的List容器
难道要用List<object> 来做转换?
[解决办法]
修正代码,有问题的话继续讨论
static void Main() { object intList = MakeList(typeof(int), 1, 2, 3); object strList = MakeList(typeof(string), "sdfd", "fet"); //List<int> foreach(object obj in (System.Collections.IEnumerable)intList) Console.WriteLine(obj); //List<string> foreach(object obj in (System.Collections.IEnumerable)strList) Console.WriteLine(obj); } static object MakeList(Type t, params object[] items) { Type type = typeof(List<>).MakeGenericType(t); object list = Activator.CreateInstance(type); System.Collections.IList ilist = list as System.Collections.IList; foreach (object o in items) ilist.Add(o); return list; }