You can't cast something to what it is not.
Say you have
string name = "some arbitrary string";
object x = name;
This will get you nowhere:
int i = (int)x; // throws an exception
because the framework doesn't know how to convert it.
I didn't run your code (nothing to build it on right now), but you
have to could loop through the values and convert them to
Point
individually. Stuff them in an
IList<Point>
, or array or whatever, after that.