在 XDocument 中搜索 XML 节点时避免 Try n Catch

Avoid Try n Catch when searching for XML nodes in XDocument

这是一种检查 特定节点 是否存在于 XDocument 文件中的方法。

显然根据一些文档它可能会遇到一些NullExceptions。 (第 5,6 行)

你推荐什么方式,如何更改这段代码以避免使用Try/Catch并且没有得到异常?

            var xContents = xDocument.Root.Descendants("Content");
            if (xContents.Any())
            {
                doesIncludeThat =
                   xContents.Any(e => e.HasAttributes && e.Name == "Content"
                            && e.Attribute("Include").Value == @"Happy New Year");
             ...}}}

如果不使用 e.Attribute(name).Value 将给出 NullReferenceException,您可以执行以下操作之一,在这种情况下两者都会 return null:

e.Attribute(name)?.Value

(string)e.Attribute(name)

后者使用 XAttribute 中定义的转换(强制转换)运算符之一,如果属性不存在,它也 return null。