C# 如何在Linq查询中添加输入检查以仅在输入有效时构建XML

C# 如何在Linq查询中添加输入检查以仅在输入有效时构建XML,c#,linq-to-xml,C#,Linq To Xml,我有一个用于构建XML的输入值。只有当值存在时,我才需要构建子元素 范例 string classInput="something"; XDocument classes = new XDocument( new XElement("Classes", new XElement("Class",

我有一个用于构建XML的输入值。只有当值存在时,我才需要构建子元素

范例

string classInput="something";     
XDocument classes = new XDocument(
                     new XElement("Classes",
                                         new XElement("Class",
                                                 new XElement("Name", classInput))
                                                ));
返回我想要的:

<Classes>
  <Class>
    <Name>something</Name>
  </Class>
</Classes>

某物
但是,上面的查询返回:

<Classes>
  <Class>
    <Name></Name>
  </Class>
</Classes>

在classInput为null或空的情况下,我希望它仅在classInput为非空字符串时构建子XML。i、 e在上述情况下,我只想构建:

如果,说classInput=“”

尝试在查询中添加一个检查,但随后它将按字符而不是字符串处理字符串classInput。然后我得到

 <Classes>
      <Class>
        <Name>something</Name>
      </Class>
    </Classes>

某物
我有更多的输入,我必须以同样的方式构建更多的子元素,因此我需要一个可扩展的解决方案。

使用a检查输入,如果输入为null或空,则返回null:

XDocument classes = new XDocument(
                      new XElement("Classes", String.IsNullOrEmpty(classInput) ?
                          null :
                          new XElement("Class",
                              new XElement("Name", classInput))
                    ));