public async Task SectorCercano(List <Sector> Sectores, Posicion MiPosicion, Compra compra) { try { List <SectorDistancia> sectorDistancias = new List <SectorDistancia>(); foreach (var item in Sectores) { var puntosSector = db.PuntoSector.Where(w => w.IdSector == item.IdSector).Select(x => new Posicion { Latitud = (double)x.Latitud, Longitud = (double)x.Longitud }).ToList(); foreach (var punto in puntosSector) { var distancia = Geo.Distancia(MiPosicion.Latitud, MiPosicion.Longitud, (double)punto.Latitud, (double)punto.Longitud); var idSector = item.IdSector; sectorDistancias.Add(new SectorDistancia { Distancia = distancia, IdSector = idSector }); } } var DistanciaMenor = sectorDistancias.OrderBy(o => o.Distancia).FirstOrDefault(); Console.WriteLine(sectorDistancias.Min(x => x.Distancia)); DistribuidoresPorSector(DistanciaMenor.IdSector, compra); } catch (Exception ex) { Debug.Write(ex.Message); throw; } }