我有一个类,其中包含List<float>
,List<int>
等类型的属性。现在我通过反射查询此类的属性,以便获得PropertyInfo
的列表。
我想过滤List<>
类型的类型。但比较
propertyInfo.PropertyType == typeof(List<>)
失败。
我可以通过比较名称来解决这个问题,即以下比较有效:
propertyInfo.PropertyType.Name == typeof(List<>).Name
我认为应该有更好的方法来比较Generic类型。有线索吗?
答案 0 :(得分:50)
您可以使用:
Type type = propertyInfo.PropertyType;
if (type.IsGenericType && type.GetGenericTypeDefinition() == typeof(List<>))
{
...
}