可能重复:
Reflection - Getting the generic parameters from a System.Type instance
Get actual type of T in a generic List<T>
我正在从一个Class循环一个PropertyInfo-List。
在本课程中,我对不同的列表感兴趣 - 例如List<int>
,List<string>
,List<Book>
,aso。
但我不知道如何获得List-Objects的类型。我只是得到像
这样的东西System.Collections.Generic.List`1[[System.String, mscorlib, Version=4.0.0.0, Culture=neutral,
PublicKeyToken=b77a5c561934e089]].
我可以将这些信息分开并根据这些信息创建一个Type,但我希望有更平滑的方式?
答案 0 :(得分:9)
简单:
Type type = list.GetType().GetGenericArguments()[0];
// The first argument will be the `T` inside `List<T>`... so the list type ;)
答案 1 :(得分:4)
var list = GetListFromFoo();
Type listType = list.GetType();
Type theTypeOfT = listType.GetGenericArguments()[0];
或者用一行:
list.GetType().GetGenericArguments()[0];