鑑於下面的代碼,我如何比較對象的值列表與測試值?找到最接近的匹配陣列的雙打
我正在構建一個地理定位應用程序。我會傳遞經緯度,並希望服務回覆與最接近這些值的位置。
我開始轉換爲字符串的路徑,並將這些值的格式設置爲小數點後兩位,但這看起來有點過分貧民窟,我正在尋找更優雅的解決方案。
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
}
你的意思是在dblInLat值進行比較的myList中值和找到最近的比賽? – Sunny 2010-04-15 19:58:09
我的意思是循環訪問位置列表並查看每個「lat」並將其與我的dblInLat進行比較。我正在尋找最接近的價值。換句話說,我會將傳入變量與列表中的每個緯度進行比較,並查找其值之間的最小差異。 – Scott 2010-04-15 20:14:58