Я не могу заставить это работать.Поле State в некоторых случаях пустое, я пытаюсь получить результат, возвращающий «-», если он пустой или не существует.
var CusipFields = from c in xml.Descendants("LISTARRAY")
orderby c.Element("ASKYIELD").Value descending
select new BondData()
{
CUSIP = c.Element("CUSIP").Value,
Description = (string)c.Element("ISSUER").Value,
Maturity= c.Element("MATURITYDT").Value,
AskYield = float.Parse(c.Element("ASKYIELD").Value),
State = (string)c.Element("STATE").Value ?? "--"
}
;
Это просто не хочет работать,Я получаю сообщение об ошибке:
NullReferenceException не обработано.{"Ссылка на объект не установлена для экземпляра объекта."}
Я ЗНАЮ, что он не существует.Я думал, что установка ?? "--"
вернет "-", если c.Element ("STATE"). Значение равно нулю.
Я могу прибегнуть к изменению оператора к:
var CusipFields = from c in xml.Descendants("LISTARRAY")
orderby c.Element("ASKYIELD").Value descending
select c;
foreach(var t in CusipFields)
{
switch(t.name)
{
}
}
Но я думаю, что это медленнее.И это не то, что я хочу.