Generics .Net如何比较泛型typeinfo

Generics .Net如何比较泛型typeinfo,generics,.net-4.0,typeinfo,Generics,.net 4.0,Typeinfo,我要筛选属性集合,以查找以下类型的所有属性: entity.GetProperties()。其中(p=>p.PropertyType==typeof(EntityCollection)); 上述代码始终不会返回任何结果,因为属性的类型为EntityCollection,其中TEntity是一个属性 我也尝试过使用EntityCollection,但没有成功 我不关心tenty的具体类型,我只希望属性的类型与tenty的类型无关 这看起来应该很简单,我是不是错过了一个技巧?:-) 嗯,你可以使用

我要筛选属性集合,以查找以下类型的所有属性:

entity.GetProperties()。其中(p=>p.PropertyType==typeof(EntityCollection));
上述代码始终不会返回任何结果,因为属性的类型为
EntityCollection
,其中
TEntity
是一个属性

我也尝试过使用
EntityCollection
,但没有成功

我不关心
tenty
的具体类型,我只希望属性的类型与
tenty
的类型无关

这看起来应该很简单,我是不是错过了一个技巧?:-)

嗯,你可以使用:

Where(p => p.PropertyType.IsGenericType && 
           p.PropertyType.GetGenericTypeDefinition() == typeof(EntityCollection<>))
Where(p=>p.PropertyType.IsGenericType&&
p、 PropertyType.GetGenericTypeDefinition()==typeof(EntityCollection))

这就是你想要的吗?请注意,这将找不到
EntityCollection的子类型

谢谢Jon,这正是我想要的:-)
Where(p => p.PropertyType.IsGenericType && 
           p.PropertyType.GetGenericTypeDefinition() == typeof(EntityCollection<>))