2

我的代码:

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()每次我为 Class 设置值时都会“搜索” MeteoGiorno。我可以在我的示例中对该节点进行某种引用吗?

4

1 回答 1

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(),
          ....
      }
   }
});
于 2012-12-06T14:39:09.077 回答