First off, don't use an ArrayList - use a Generic structure instead. An ArrayList is not strongly typed, whereas a List (or similar) is. This means that you do not need to cast it to get the object, and you can only store the appropriate objects in there (which is why you don't need to cast it).
Secondly, I would start by defining a class for my Asteroid, which contains a region (or a rectangle if you are feeling lazy) which describes the bound of the current size of asteroid. (You could also do this for a bullet, but a Point, a Direction and a Speed of movement is probably all you need there.)
Then for a rectangle, it is easy:
Rectangle.Contains[
^] comes in Point and Rectangle versions.
For the more accurate Region there is
IsVisible[
^] which does much the same job.