我需要创建一个泛型类型,但我不知道编译时的类型.我想这样做:
Type t = typeof(whatever);
var list = new List<t>
Run Code Online (Sandbox Code Playgroud)
这不会编译,因为t不是有效类型.但它确实知道一个有效的类型.有没有办法从System.Type中动态创建通用列表?我可能需要反思,那没关系,我只是有点迷失在这里.
SLa*_*aks 26
像这样:
Type t;
Type genericListType = typeof(List<>).MakeGenericType(t);
object list = Activator.CreateInstance(genericListType);
Run Code Online (Sandbox Code Playgroud)
请注意,您只能将其分配给类型的变量object.(虽然你可以转换为非通用IList接口)
要使用list变量,您可能需要反射.