2

可能重复:
反射 - 从 System.Type 实例
获取泛型参数 在泛型 List<T> 中获取 T 的实际类型

我正在从一个类中循环一个 PropertyInfo-List。在这堂课中,我对不同的列表感兴趣——例如List<int>, List<string>, List<Book>, aso。

但我不知道如何获得列表对象的类型。我只是得到类似的东西

System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089]].

我可以把这些信息拆开,从这些信息中创建一个类型,但我希望有一个更顺畅的方法?

4

2 回答 2

9

简单的:

Type type = list.GetType().GetGenericArguments()[0];
// The first argument will be the `T` inside `List<T>`... so the list type ;)
于 2012-04-26T21:16:45.883 回答
4
var  list = GetListFromFoo();
Type listType = list.GetType();
Type theTypeOfT = listType.GetGenericArguments()[0]; 

或者用一行:

list.GetType().GetGenericArguments()[0]; 
于 2012-04-26T21:17:44.300 回答