如何查找泛型类型是否为List<>

时间:2012-04-04 01:16:05

标签: generics c#-4.0 generic-list

我有一个通用方法定义如下

public T MyMethod<T>(extra params)

我的方法可以接收和返回单个实体类型,也可以返回List。 如何找到T传递的是单个实体类型还是List,在这种情况下如何获得内部类型T1的类型?

谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用Type类的方法执行此操作:

var type = typeof(T);
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>)) {
    var innerType = type.GetGenericArguments()[0];
}