我正在尝试从List创建XML.我从列表中创建一个Anonymous类来形成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)
));
Run Code Online (Sandbox Code Playgroud)
我如何处理if Fname或Lnamenull?
此外,我想仅在对象不为null时动态添加元素.例如,如果Fname为null,我需要跳过创建Fname:
new XElement("ID", emp.ID),
new XElement("LName", emp.LName)
Run Code Online (Sandbox Code Playgroud)
我怎么做?
Jon*_*eet 11
您的代码实际上根本不显示匿名类型 - 只是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)
)
Run Code Online (Sandbox Code Playgroud)
或者你可以写一个扩展方法string:
public static XElement ToXElement(this string content, XName name)
{
return content == null ? null : new XElement(name, content);
}
Run Code Online (Sandbox Code Playgroud)
并称之为:
select new XElement("Employee",
emp.ID.ToXElement("ID"),
emp.FName.ToXElement("FName"),
emp.LName.ToXElement("LName"))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3058 次 |
| 最近记录: |