You just need to cast it:
var collection = (List<Student>) studentPro.GetValue(studentObj,null);
The value returned to you and stored in
var is of type
object. So you need to cast it to
List<Student> first, before trying looping through it.
That is why I personally do not like
var, it hides the type – unless in VS you hover on it. If it was a declared with type
object it was immediately obvious that we cannot iterate through it.
Yes its good. But casting should be
done with reflection. In reflection we
dont know the type of List. We dont
know the actual type of the studentObj
In order to do that, you can cast to
var collection = (IEnumerable) studentPro.GetValue(studentObj,null);