也许我应该稍微补充一下来解释我想要做什么。
我正在尝试制作一款会在日落前半小时通知我的应用。我喜欢在山上制作我的蓝图,但是我习惯于忘记时间并且在黑暗中被困在那里。如果我每天都知道自己会去哪里,那将会更容易,但由于旅行,我经常在萨克拉门托和多佛之间的不同地方。所以我想创建一个可以编程方式从http://www.timeanddate.com/worldclock/sunrise.html获取数据的应用程序。该网站包含一个下拉列表,其中选择了一个位置,然后它会将您带到一个包含当天日落时间的表格(以及与我无关的其他信息)。
我通过一个名为Fiddler的程序运行该过程,发现它对下拉框中选择的值使用了get请求。例如,当我选择美国 - 加利福尼亚 - 萨克拉门托时,网络流量(根据提琴手)如下:
GET http://www.timeanddate.com/worldclock/astronomy.html?n=217 200 OK (text / html的)
所以,我想我可以在WebRequest中传递n = 217
WebRequest request = WebRequest.Create("http://www.timeanddate.com/worldclock/astronomy.html?n=217");
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
但问题是我需要我的程序在代码中选择Sacramento或Dover等。我想象一下像
public string GetCityValue(string city)
{
string cityvalue = null;
if (city.Contains("Sacramento"))
{
cityvalue = "217";
}
if (city.Contains("Dover"))
{
cityvalue = "217";
}
return cityvalue;
}
或许有一种方法可以将所有下拉列表列表放入列表并在列表中搜索方法参数中的字符串,无论如何,这些细节现在不用担心我。大多数情况下,我只是对如何从列表中选择一个城市并使用我自己的代码在生成的页面上获取表格感到困惑。
如果我没有提供必要的信息等,请告诉我。
谢谢
答案 0 :(得分:0)
这似乎是字典的用例:
//setup dictionary
Dictionary<string, int> cityMapping = new Dictionary<string, int>()
{
{ "Sacramento", 217 },
{ "Dover", 218 }
};
//query dictionary:
int cityCode = cityMapping["Sacramento"];
您可能希望将此映射放入XML文件中,以便更轻松地更新和更改它。例如,给出了这个XML:
<CityMappings>
<City name="Sacramento" code="217"/>
<City name="Dover" code="218"/>
</CityMappings>
您可以像这样创建cityMapping字典:
var cityMapping = XElement.Load("test.xml")
.Descendants("City")
.ToDictionary(x => x.Attribute("name").Value,
x => int.Parse(x.Attribute("code").Value));