3

我正在尝试创建在运行时设置的自定义类型的列表。这怎么可能?

这是我的代码:

Type customType = typeof(string); // or someOtherVariable.GetType();

List<customType> ls = new List<customType>(); // Error: The type or namespace name `customType' could not be found
4

2 回答 2

7

如果要实例化某个反射类型的通用列表,则必须使用反射来执行此操作:

var type = typeof(string);

var list = typeof(List<>);
var listOfType = list.MakeGenericType(type);

var instance = Activator.CreateInstance(listOfType);
于 2012-09-05T15:51:30.817 回答
-1

你不能做这个。泛型集合在编译时是强类型的。您也许可以发出/codegen 一个新类并在需要时动态编译它,但这是一个非常不同的问题

于 2012-09-05T15:51:39.180 回答