我正在查询一个xml
并且我正在使用存储结果singleordefault
var query = from nm in xelement.Descendants("EmployeeFinance")
where (int)nm.Element("EmpPersonal_Id") == empID
select new AllowancePaid
{
gradeTaxId = nm.Element("Allow-GradeTax").Elements("Amount").Attributes("BenListId").Select(a => (int)a).ToList(),
gradeTaxAmt = nm.Element("Allow-GradeTax").Elements("Amount").Select(a => (double)a).ToList()
};
Debug.WriteLine("2");
var resultquery = query.SingleOrDefault();
现在这一行:var resultquery = query.SingleOrDefault();
如果在xml
文件中找到它就可以正常工作。但是,我有一种情况,我的查询将导致空值。如果我没有值,它会在xml
文件中创建一个条目,我的查询显然会导致null
. 我的问题是我如何在不导致我的程序崩溃的情况下满足这一点。显然,singleordefault()
不起作用。
** * ** * ** * ** * ** * **已编辑* ** * ** * ** * ** * ** * ** * ** * ***
到目前为止,我阅读了每个人都说的话,这是有道理的,但我仍然遇到问题。
if (query.Count() == 0)
{
Debug.WriteLine("NULL");
}
else {
var resultquery = query.SingleOrDefault();
Debug.WriteLine("NOT NULL");
}
或者
if (query == null)
{
Debug.WriteLine("NULL");
}
else {
var resultquery = query.SingleOrDefault();
Debug.WriteLine("NOT NULL");
}
或者
var resultquery = query.SingleOrDefault();
if (resultquery == null)
{
Debug.WriteLine("NULL Result");
}
else
{
Debug.WriteLine("NOT NULL");
}
System.NullReferenceException
当 if 语句的第一部分为真时,我得到一个错误。一位用户说要这样做:var resultquery = query.SingleOrDefault();
然后使用我的 if..else 语句进行比较。但是,我在分配query.singleofdefault()
给时遇到了错误resultquery
。所以我迷路了..希望有人能帮忙。谢谢你