C# 如何获取列表的项目类型?

C# 如何获取列表的项目类型?,c#,reflection,C#,Reflection,假设我有一个“类型mytype”,如果我有“mytype.ToString()”,我会得到“System.Collections.Generic.List`1[Example1.Employee]”,那么如何得到列表项类型,即“Example1.Employee”?我是否必须解析此字符串才能获得此列表项类型?是否有更优雅的方式,例如“mytype.ItemType” 另外,为什么在“System.Collections.Generic.List`1”的末尾有一个“`1”附录 还有,为什么在“Sy

假设我有一个“类型mytype”,如果我有“mytype.ToString()”,我会得到“System.Collections.Generic.List`1[Example1.Employee]”,那么如何得到列表项类型,即“Example1.Employee”?我是否必须解析此字符串才能获得此列表项类型?是否有更优雅的方式,例如“mytype.ItemType

另外,为什么在“System.Collections.Generic.List`1”的末尾有一个“`1”附录

还有,为什么在“System.Collections.Generic.Dictionary`2”的末尾有一个“`2”?

很简单:

Type element = list.GetType().GenericTypeArguments[0]

而“`1”只是表示通用参数的数量。

通用参数的数量
技术术语是“arity”,但不是很多人理解that@Charlieface-是的,在其他语言中与Prolog相同。“Arity是逻辑、数学和计算机科学中函数或运算的参数或操作数。”谢谢大家!我忘了问:为什么结尾有一个“&”,例如,System.Collections.Generic.List`1[Example1.Employee]&”?@SillyDude-在
ToString()的结尾没有
&
输出。你在哪里看到它?@SillyDude如果你看到一个
&
它将代表一个
ref
类型,例如
ref string
,但是你可能只看到如果你正在查看函数参数类型,你也可以自己创建它们
typeof(List)。MakeByRefType().ToString()
获取
System.Collections.Generic.List``1[System.String]&