Ну, это зависит от вашего формата XML, но вы можете просто захотеть что-то вроде:
...
select new StockDataPoint((string) s.Attribute("symbol"),
(DateTime) s.Attribute("TradeDate"),
(decimal) s.Attribute("Open"),
(decimal) s.Attribute("High"),
(decimal) s.Attribute("Low"),
(decimal) s.Attribute("Close"),
(long) s.Attribute("Volume"));
Обратите внимание, что, используя явные операторы на XAttribute
, вы можете избежать анализа самостоятельно. Действительно, вы можете использовать это и раньше в своем запросе:
var makeInfo = from s in doc.Descendants("quote")
where s.Attribute("symbol") &&
(DateTime?) s.Attribute("LastTradeDate") == targetDate
select ...
Если целью приведения является тип NULL (тип значения NULL или ссылочный тип), то если атрибут отсутствует, результатом будет нулевое значение для этого типа, что очень удобно.