Вы можете использовать метод GetGenericTypeDefinition
, чтобы получить открытую форму универсального типа, а затем сравнить ее с VehicleCollection<>
(открытая форма) следующим образом:
var vehicleProperties = typeof(Program).GetProperties()
.Where(p =>
p.PropertyType.IsGenericType &&
p.PropertyType.GetGenericTypeDefinition() == typeof(VehicleCollection<>))
.ToList();
IsGenericType
используетсячтобы убедиться, что тип свойства является общим.