如何使用 Type.GetType()
在C#中获取 "List<String>"
的类型?
我已经尝试过:
Type.GetType("List<String>");
Type.GetType("System.Collections.Generic.List.String"); // Or [String]
请注意,由于我要获取的值是字符串,所以我不能使用
typeof
。如何使用 Type.GetType()
在C#中获取 "List<String>"
的类型?
我已经尝试过:
Type.GetType("List<String>");
Type.GetType("System.Collections.Generic.List.String"); // Or [String]
typeof
。你无法从"List<String>"
中获取,但是你可以通过Type.GetType
来获取:
Type type = Type.GetType("System.Collections.Generic.List`1[System.String]");
在这种情况下,你很幸运 - List<T>
和string
都在mscorlib中,所以我们不需要指定程序集。
`1部分指定了类型的元数:它有一个类型参数。方括号中的内容指定了类型参数。
你从哪里获取了只有List<String>
的信息?你能更改一下你的要求吗?这样做会比解析字符串、确定类型参数在哪里、在不同的命名空间和程序集中查找类型等更容易。如果你在一个有限的上下文中工作(例如,你只需要支持已知的一组类型),可能最容易硬编码一些细节。
typeof
的答案,当OP解释需要从字符串中获取类型时,他进行了编辑。我在Giorgi编辑答案时正在编写我的答案。您看不到编辑,因为它在前5分钟内完成,但显然存在,否则OP的评论就没有意义了。 - Jon SkeetSystem.Type type = typeof(List<String>);
typeof(List<string>)