读书人

Listlt;Tgt; 中的T能否动态生成,该怎么处理

发布时间: 2012-06-08 12:55:24 作者: rapoo

List<T> 中的T能否动态生成
请问 List<T>中的T是不是一定要指明一种特定的类型
比如 List<string> List<int>

我遇到的问题是,需要用到List容器,但是类型可能得到运行时才能确定,比如运行时才通过参数知道需要用到的是string或是int类型的List容器
难道要用List<object> 来做转换?

[解决办法]
修正代码,有问题的话继续讨论

C# code
        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;        } 

读书人网 >C#

热点推荐