繁体   English   中英

如果值不为Null,则创建XElement

[英]XElement creation if the value is not Null

我正在尝试从列表创建XML。 我正在从列表中创建一个匿名类以形成XML:

var xEle = new XElement("Employees",
                from emp in empList
                select new XElement("Employee",
                             new XElement("ID", emp.ID),
                               new XElement("FName", emp.FName),
                             new XElement("LName", emp.LName)
                      ));

如果FnameLname为null,如何处理?

我也想仅在对象不为null时动态地添加元素。 例如,如果Fname为null,则需要跳过创建Fname的操作:

new XElement("ID", emp.ID),
new XElement("LName", emp.LName)

我怎么做?

您的代码实际上根本不显示匿名类型-仅创建XElement 但是,您可以使用以下事实:添加内容时,LINQ to XML将忽略null值。 因此,您可以使用:

select new XElement("Employee",
                    new XElement("ID", emp.ID),
                    emp.FName == null ? null : new XElement("FName", emp.FName),
                    emp.LName == null ? null : new XElement("LName", emp.LName)
                   )

或者您可以在string上编写扩展方法:

public static XElement ToXElement(this string content, XName name)
{
    return content == null ? null : new XElement(name, content);
}

并调用:

select new XElement("Employee",
                    emp.ID.ToXElement("ID"),
                    emp.FName.ToXElement("FName"),
                    emp.LName.ToXElement("LName"))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM