如何通过自省了解对象是否属于泛型集合

本文关键字:属于 泛型 集合 是否 对象 何通过 自省 了解 | 更新日期: 2023-09-27 18:11:56

假设我有一个对象的引用。我想使用自省来找出它是否是对集合的引用,但我不知道(也不在乎)它所持有的元素的泛型类型。

例如:

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

任何建议吗?

如何通过自省了解对象是否属于泛型集合

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