I am getting values for a number of elements in a .resx
file. On some of the the data
elements the <comment>
child element does not exist so when I run the following I will get a NullReferenceException
.
foreach (var node in XDocument.Load(filePath).DescendantNodes())
{
var element = node as XElement;
if (element?.Name == "data")
{
values.Add(new ResxString
{
LineKey = element.Attribute("name").Value,
LineValue = element.Value.Trim(),
LineComment = element.Element("comment").Value //fails here
});
}
}
I have tried the following:
LineComment = element.Element("comment").Value != null ?
element.Element("comment").Value : ""
And:
LineComment = element.Element("comment").Value == null ?
"" : element.Element("comment").Value
However I am still getting an error? Any help appreciated.
Use Null-conditional (?.
) Operator:
LineComment = element.Element("comment")?.Value
It used to test for null before performing a member access.