2011-02-27 44 views
0

中創建的項目清單,我有以下代碼:「變種響應」

var request = new GeocodingRequest(); 
request.Address = postcode; 
request.Sensor = "false"; 
var response = GeocodingService.GetResponse(request); 

var result = response.Results. ...? 

我會非常想拿到結果作爲列表,但我似乎無法將其轉換。我知道我可以做點像response.Results.ToList<string>();,但沒有運氣。

任何人的幫助都可以請:)

+2

您使用的是什麼庫?谷歌不是很有用,因爲這是一個非常常見的術語。 – 2011-02-27 18:53:09

+0

「響應」的類型是什麼?也許鏈接到一個API頁面可能會有用。你使用WCF嗎? – 2011-02-27 18:53:33

+0

@Mike Caron,謝謝你的留言。你怎麼知道這是一個谷歌圖書館? :) 非常聰明。圖書館是這個優秀的圖書館:http://gmaps.codeplex.com/ – dooburt 2011-02-27 18:58:22

回答

4

那麼你可以使用:

GeocodingResult[] results = response.Results; 

List<GeocodingResult> results = response.Results.ToList(); 

如果你想的列表,你需要決定要如何給每個轉換結果成一個字符串。例如,您可以使用:

List<string> results = response.Results 
           .Select(result => result.FormattedAddress) 
           .ToList(); 
+0

+1超級回答Jon;) – dooburt 2011-02-27 19:00:59

+0

@dooburt:當然所有這些工作都使用'var'而不是顯式類型。 – Timwi 2011-02-27 21:00:41

+0

我們可以在這種情況下使用「動態」嗎?請告訴我。 – Sandeep 2011-02-28 03:48:45

0

假設response.Results是IEnumerable的,只要確保System.Linq的是作爲一個命名空間,並說response.Results.ToList()

2

其定義爲:

[JsonProperty("results")] 
    public GeocodingResult[] Results { get; set; } 

如果您想讓它列出呼叫:response.Results.ToList()

但是,您爲什麼要將它列出?你可以插入項目列表,但我不認爲你需要它。

+0

+1好回答安德烈,謝謝:) – dooburt 2011-02-27 19:01:15