我的代码:
var myList = xDoc.Descendants("localita").Select(n => new
{
ID = n.Element("id").Value.ToString(),
Localita = n.Element("nome").Value.ToString(),
Lat = n.Element("lat").Value.ToString(),
Lng = n.Element("lon").Value.ToString(),
MeteoOggi = new MeteoGiorno()
{
Min = n.Descendants("previsione").First().Element("temp_perc").Value.ToString(),
Max = n.Descendants("previsione").First().Element("temp").Value.ToString(),
DescrizioneTempo = n.Descendants("previsione").First().Element("desc_tempo").Value.ToString(),
Precipitazioni = n.Descendants("previsione").First().Element("prec").Value.ToString(),
VentoDirezione = n.Descendants("previsione").First().Element("v_dir").Value.ToString(),
VentoIntensita = n.Descendants("previsione").First().Element("v_int").Value.ToString(),
Pressione = n.Descendants("previsione").First().Element("press").Value.ToString(),
ZeroTermico = n.Descendants("previsione").First().Element("zerot").Value.ToString(),
Immagine = n.Descendants("previsione").First().Element("id_tempo").Value.ToString()
}
});
但正如您所看到的,每次设置类n.Descendants("previsione").First()
的值时,MeteoGiorno
都会被“搜索”。我可以在我的示例中对该节点进行一种引用吗?
答案 0 :(得分:6)
当然可以,只需更改Select
:
var myList = xDoc.Descendants("localita").Select(n => {
var previsione = n.Descendants("previsione").First();
return new {
ID = n.Element("id").Value.ToString(),
....
MeteoOggi = new MeteoGiorno()
{
Min = previsione.Element("temp_perc").Value.ToString(),
Max = previsione.Element("temp").Value.ToString(),
....
}
}
});