如何通过内省来理解对象是否属于泛型集合

时间:2013-05-03 15:00:48

标签: c# reflection

假设我有一个对象的引用。我想使用内省来查明它是否是对集合的引用,但我不知道(并且不关心)它所拥有的元素的泛型类型。

举个例子:

List<int> l;
Object referenceToList = l;

if (typeof(referenceToList) == ??)
{
  //condition is true for List<int>, List<float> ....
}

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

var type = referenceToList.GetType();
if(type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))
{
    // It's some List<T>
}