2011-12-11 7 views
1

おそらく私は何をしようとしているのかを説明するために少しバックアップするべきでしょう。ドロップダウンリストからプログラムを選択して取得リクエストの値を取得しますか?

私は30分前に通知するアプリを作ろうとしています。私は山の中で私の青写真で作業するのが好きですが、私は時間の軌跡を失い、暗闇の中で立ち往生する習慣があります。私が毎日どこに行くのか分かっていたら、ITはもっと楽になりました。しかし、旅行のために、私はサクラメントとドーバーの間の別々の場所に常にいます。ですから、http://www.timeanddate.com/worldclock/sunrise.htmlからプログラムでデータを取得できるアプリケーションを作りたいと思います。そのウェブサイトには、場所が選択されたドロップダウンリストが含まれていて、その日の日没時間(および私に関係のないその他の情報)を含むテーブルに移動します。

私はFiddlerというプログラムを通してプロセスを実行し、ドロップダウンボックスで選択された値に対してget要求を使用することがわかりました。私はアメリカを選択すると、例えば - カリフォルニア州 - 次のようにサクラメント(シオマネキに応じて)Webトラフィックは、次のとおりです。

http://www.timeanddate.com/worldclock/astronomy.html?n=217 200 OK (テキスト/ HTML)をGET

だから、私は私だと思いますWebRequestクラス

WebRequest request = WebRequest.Create("http://www.timeanddate.com/worldclock/astronomy.html?n=217");   
request.Credentials = CredentialCache.DefaultCredentials; 
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); 

中、n = 217を通過ししかし、問題は、私はコード内サクラメントやドーバーなどを選択するための私のプログラムが必要であることができます。私はとにかくそれらの詳細は、今の私を心配いけない、

public string GetCityValue(string city) 
{ 
    string cityvalue = null; 

    if (city.Contains("Sacramento")) 
    { 
     cityvalue = "217"; 
    } 

    if (city.Contains("Dover")) 
    { 
     cityvalue = "217"; 
    } 

    return cityvalue; 
} 

それともリストにすべてのドロップダウンリストotionsを入れて、メソッドパラメータに文字列のリストを検索する方法があるようなものを想像してみてください。ほとんどの場合、リストから都市を選択して、自分のコードで生成されたページの表を取得する方法について、私は混乱しています。

私は必要な情報などを提供できなかった場合にお知らせください。これは、辞書のためのユースケースのように思える

おかげ

答えて

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)); 
+0

感謝の先生、XML一つがよさそうです。それを試みるだろう –

関連する問題