我正在学习使用LINQ。我在网上看过一些给我留下深刻印象的视频。为了自己学习LINQ,我决定尝试向NOAA Web服务编写查询。如果您在浏览器的地址栏中输入“http://www.weather.gov/forecasts/xml/sample_products/browser_interface/ndfdBrowserClientByDay.php?zipCodeList=20001&format=24+hourly&startDate=2010-06-10&numDays=5”,则会看到一些XML。我已经在C#程序中成功检索到了该XML。我通过执行以下操作将XML加载到LINQable实体中:
string xml = QueryWeatherService();
XDocument weather = XDocument.Parse(xml);
我有一个名为DailyForecast的类定义如下:
public class DailyForecast
{
public float HighTemperature { get; set; }
public float LowTemperature { get; set; }
public float PrecipitationPossibility { get; set; }
public string WeatherSummary { get; set; }
}
我正在尝试编写符合DailyForecast类结构的LINQ查询。在这个时候,我只是走到了这一步:
var results = from day in response.Descendants("parameters")
select day;
我知道的不是很远。由于返回的XML结构,我不确定是否可以单独使用LINQ查询。我认为唯一的方法是通过循环并遍历XML。如果我错了,我正在找人纠正我。有人可以告诉我,我是否可以使用纯粹的LINQ来获得结果,这些LINQ遵循DailyForecast类的结构?如果是这样,怎么样?
谢谢!
答案 0 :(得分:1)
由于您的xml可能会返回多条记录,
var results = from day in response.Descendants("parameters")
select new DailyForecast()
{
HighTemperature = day.Element("param name corresponding to high temp"),
};
return result.ToList(); //or any type of collection you want to return