我正在獲取.resx
文件中多個元素的值。在一些data
元素<comment>
子元素不存在,所以當我運行以下時,我會得到一個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
});
}
}
我曾嘗試以下:
LineComment = element.Element("comment").Value != null ?
element.Element("comment").Value : ""
和:
LineComment = element.Element("comment").Value == null ?
"" : element.Element("comment").Value
但是我仍然得到一個錯誤?任何幫助讚賞。
公告 - 似乎問題是你正在做的。價值的「空」又名null.Value –
怎麼樣使用空傳播運算符(?'.')就像你在'if'條件下做的...'element.Element(「comment」)?Value'。或者只是'LineComment = element.Element(「comment」)== null? 「」:element.Element(「comment」)。Value;' –