0
检查空收集我使用LINQ的对象转换为XML,并卡住了下面一个问题(简化为简洁起见):的LINQ投影如何从select语句
public class Job
{
public string JobNumber{ get; set; }
public string ClientType { get; set; }
public List<ChildItem> ChildItems { get; set; }
}
public class ChildItem
{
public string Id{ get; set; }
}
var data = DAL.GetJobs();
var xml = new XElement("records",
data.Select(i => new XElement("record",
new XAttribute("JobNumber", i.JobNumber),
new XAttribute("ClientType", i.ClientType),
new XElement("Items",
i.ChildItems.Select(j=>new XElement("Item",
new XAttribute("ID", j.Id)
))))));
上面的代码工作正常时ChildItems被初始化并给出
<records>
<record JobNumber="12" ClientType="ABC">
<Items>
<Item ID="1"/>
<Item ID="2"/>
</Items>
</record>
</records>
但是,当Childitems在作业中为空时,会引发错误。如果为空,我想输出的是:
<records>
<record JobNumber="12" ClientType="ABC">
<Items>
</Items>
</record>
</records>
但是,我无法弄清楚如何从Select中检查null?
任何解决方案?