Étant donné le code ci-dessous, comment puis-je comparer une liste de valeurs d'objets avec une valeur de test?trouver la correspondance la plus proche du tableau de doubles
Je construis une application de géolocalisation. Je vais passer en longitude et latitude et je voudrais que le service réponde à l'endroit le plus proche de ces valeurs. J'ai commencé le chemin de la conversion à une chaîne, et le formatage des valeurs à deux décimales, mais cela semblait un peu trop ghetto, et je suis à la recherche d'une solution plus élégante.
public class Location : IEnumerable
{
public string label { get; set; }
public double lat { get; set; }
public double lon { get; set; }
//Implement IEnumerable
public IEnumerator GetEnumerator()
{
return (IEnumerator)this;
}
}
[HandleError]
public class HomeController : Controller
{
private List<Location> myList = new List<Location>
{
new Location {
label="Atlanta Midtown",
lon=33.657674,
lat=-84.423130},
new Location {
label="Atlanta Airport",
lon=33.794151,
lat=-84.387228},
new Location {
label="Stamford, CT",
lon=41.053758,
lat=-73.530979}, ...
}
public static int Main(String[] args)
{
string inLat = "-80.987654";
double dblInLat = double.Parse(inLat);
// here's where I would like to find the closest location to the inLat
// once I figure out this, I'll implement the Longitude, and I'll be set
}
Voulez-vous dire pour comparer la valeur dblInLat aux valeurs myList et trouver le match le plus proche? – Sunny
Je veux parcourir la liste des emplacements et regarder chaque "lat" et le comparer à mon dblInLat. Je cherche la valeur la plus proche - plus ou moins. En d'autres termes, je compare la variable entrante à chaque lat dans la liste et cherche la moindre différence entre leurs valeurs. – Scott