У меня есть XML с этой структурой:
<weatherdata>
<datapoint>
<location>London</location>
<rainfall>14</rainfall>
</datapoint>
......
</weatherdata>
Я хотел бы сохранить среднее количество осадков, сгруппированных по местоположению, в список объектов Datapoint. Объект Datapoint имеет свойства Location и AvgRainfall.
List<Datapoint> datapointList = new List<Datapoint>();
var q = xdoc.Element("weatherdata").Elements("datapoint")
.GroupBy(e => e.Element("location").Value);
IEnumerable<Datapoint> d = xdoc.Element("weatherdata").Elements("datapoint")
.GroupBy(e => e.Element("location").Value)
.Select(x => new Datapoint
{
RegionName = x.Key,
AvgRainfall = x.Select(e => e.Elements("rainfall")
.Average(f => double.Parse(f.Value)))
});
Проблема в том, что свойство AvgRainfall имеет тип double, но x.Select возвращает IEnumerable - double-list.
Пожалуйста, укажите мне правильное направление.
изменить: это решение хорошо сработало для моей проблемы:
AvgRainfall = x.Elements("rainfall").Average(f => double.Parse(f.Value))