如何使用"List<String>"
在C#中获取Type.GetType()
的类型?
我已经尝试过了:
Type.GetType("List<String>");
Type.GetType("System.Collections.Generic.List.String"); // Or [String]
请注意,我无法使用typeof
,因为我获取的类型值是字符串。
答案 0 :(得分:19)
您无法从"List<String>"
获取,但可以从Type.GetType
获取:
Type type = Type.GetType("System.Collections.Generic.List`1[System.String]");
在这种情况下你很幸运 - List<T>
和string
都在mscorlib中,因此我们不必指定程序集。
`1部分指定类型的 arity :它有一个类型参数。方括号中的位指定类型参数。
你从哪里得到List<String>
?你能改变你的要求吗?它比解析字符串,计算类型参数的位置,在不同的命名空间和程序集中查找类型等更容易。如果您在有限的上下文中工作(例如,您只需要支持一组已知的类型)对某些细节进行硬编码可能是最容易的。
答案 1 :(得分:3)
答案 2 :(得分:1)
System.Type type = typeof(List<String>);
答案 3 :(得分:0)
typeof(List<string>)