Je reçois des valeurs pour un certain nombre d'éléments dans un fichier .resx
. Sur certains des éléments data
, l'élément enfant <comment>
n'existe pas. Lorsque je lance ce qui suit, j'obtiens un NullReferenceException
.Recherche de valeurs nulles si l'élément n'existe pas
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
});
}
}
J'ai essayé ce qui suit:
LineComment = element.Element("comment").Value != null ?
element.Element("comment").Value : ""
Et:
LineComment = element.Element("comment").Value == null ?
"" : element.Element("comment").Value
Cependant, je reçois toujours une erreur? Toute aide appréciée.
Avis - semble que le problème est que vous êtes en train de faire .Value sur "null" alias null.Value –
Qu'en est-il en utilisant l'opérateur de propagation null (? '.'), comme vous l'avez fait avec votre condition 'if' ... 'element.Element (" comment ") ?. Value'. Ou juste 'LineComment = element.Element (" comment ") == null? "": element.Element ("comment"). Value; ' –