如何从列表类型中获取模板类型?

Pau*_*Ash 5 c# reflection templates types

我已经四处寻找这个有一段时间了。我想知道如何获取传递到创建列表的模板类型。例如。

List<string> listOfStrings = new List<string>();
Run Code Online (Sandbox Code Playgroud)

我如何从中获取字符串类型?我知道如何使用类型来获取字段并查找列表类型,但不知道其中的模板。

Øyv*_*hen 3

在这种情况下,你可以这样得到它

Type genericType = listOfStrings.GetType().GetGenericArguments()[0];
Run Code Online (Sandbox Code Playgroud)

请注意,如果您在非泛型类型上尝试此操作,则会失败,因为 GetGenericArguments 数组的长度将为 0,但您当然可以采取措施来控制数组的长度。