2011-02-27 19 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