public static ObservableCollection <BikeStationViewModel> GetNearStations(Location coordinate, IEnumerable <BikeStationViewModel> allStations, bool from) { //return collection ObservableCollection <BikeStationViewModel> collection = new ObservableCollection <BikeStationViewModel>(); if (allStations != null) { List <BikeStationViewModel> stations = null; foreach (BikeStationViewModel station in allStations) { if (from) { station.WalkDistanceTo = GeoMath.ComputeDistance(station.Location.Latitude, station.Location.Longitude, coordinate.Latitude, coordinate.Longitude); } else { station.WalkDistanceFrom = GeoMath.ComputeDistance(station.Location.Latitude, station.Location.Longitude, coordinate.Latitude, coordinate.Longitude); } } if (from) { stations = allStations.OrderBy(x => x.WalkDistanceTo).Take(5).ToList(); } else { stations = allStations.OrderBy(x => x.WalkDistanceFrom).Take(5).ToList(); } foreach (BikeStationViewModel station in stations) { collection.Add(station); } } else { throw new Exception(AppResources.Message_StationsNotLoaded); } return(collection); }