如何获取 XElement 并在它不存在时创建它?

Lou*_*hys 3 .net c# xml linq-to-xml

有没有办法在 XContainer 中使用类似Element方法的方法,但是如果容器中不存在具有指定名称的 Element ,则会创建一个新的 XElement 并返回它?

Lau*_*ZZA 6

我觉得你应该自己写。它应该是一个静态辅助方法。



    private static XElement GetOrCreateElement(XContainer container, string name) {
        var element = container.Element(name);
        if(element == null)
        {
           element = new XElement(name);
            container.Add(element);
        }
        return element;
    }

Run Code Online (Sandbox Code Playgroud)

如果您希望使用成员调用语法,请通过在 XContainer 前添加“this”使其成为扩展方法。在这种情况下,该方法应在一个静态类中,没有您可以称为“XContainerExtensions”的字段。