Covariance in generic collections
You can make GetMinDistance generic:

double GetMinDistance&lt;T&gt;(IList&lt;T&gt; objects, GeoCoordinate position)
  where T: IGeoObject
{ 
    // ...
}


You can use it like this:

List&lt;User&gt; user = ....;

GetMinDistance(user, position);