var qXML = (from nm in xelement.Descendants("EmployeeFinance")
where nm.Element("Status").Value.Contains(status) && int.Parse(nm.Element("Empersonal_Id").Value) == ele.EmpId
select nm).SingleOrDefault();
以上是我的示例代码。现在存在ele.EmpId
将出现在xml和实例中的情况。如何处理找不到ele.EmpId
时抛出的null异常。
答案 0 :(得分:0)
这将检查元素是否为null
且元素是否包含非空/空字符串值,并且在它尝试解析之前,如果它们中的任何一个检查失败,它将短路。
var qXML = (from nm in xelement.Descendants("EmployeeFinance")
where nm.Element("Status").Value.Contains(status) &&
((nm.Element("Empersonal_Id") != null) &&
!string.IsNullOrEmpty(nm.Element("Empersonal_Id").Value) &&
int.Parse(nm.Element("Empersonal_Id").Value) == ele.EmpId)
select nm).SingleOrDefault();