开发者

Null Linq Values

开发者 https://www.devze.com 2023-02-13 05:40 出处:网络
I cant get this to work. The State field is empty on certain occassions, I am trying to get the result to return \"--\" if it is empty, or doesn\'t exist.

I cant get this to work. The State field is empty on certain occassions, I am trying to get the result to return "--" if it is empty, or doesn't exist.

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 ?? "--"
                                  }
                                  ;

This just doesn't want to work. The error I am getting is:

NullReferenceException was unhandled. {"Object reference not set to an instance of an object."}

I KNOW that开发者_如何学Python it does not exist. I thought that putting ?? "--" will return "--" if c.Element("STATE").Value is null.

I can resort to modifying the statement to:

var CusipFields = from c in xml.Descendants("LISTARRAY")
                                  orderby c.Element("ASKYIELD").Value descending
                                  select c;
foreach(var t in CusipFields)
{
   switch(t.name)
    {
    }
}

But I think that it is slower. And its not what I want.


Use this:

State = (string)c.Element("STATE") ?? "--"

instead of

 State = (string)c.Element("STATE").Value ?? "--"

My answer assumes, that your problem is, that the STATE element is missing, not empty. Please tell me, whether or not that fixed your problem.


I think it's because c.Element("STATE") is null, not it's Value property.

try:

(string)c.Element("STATE") != null? (string)c.Element("STATE").Value : "--";


You're getting this error not because the Value property is null, but because c.Element(...) is null. You'll need to check for nulls in all of your Element() calls and take appropriate action in order to avoid this error.

0

精彩评论

暂无评论...
验证码 换一张
取 消