我查詢一個xml
,我使用singleordefault
的LINQ to XML單個或默認
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();
現在這條線存儲結果:如果在xml
文件中找到var resultquery = query.SingleOrDefault();
工作正常。但是,我有我的查詢會導致null的情況。如果我沒有價值,它會在xml
文件中輸入,我的查詢顯然會導致null
。我的問題是我如何迎合這一點,而不會導致我的程序崩潰。顯然,singleordefault()
不起作用。
** * ** * ** * ** * ** * ** EDITED * ** * ** * ** * ** * ** * ** * ** * ***
我讀什麼大家都表示,到目前爲止,它是有意義,但我仍然有一個問題。
if (query.Count() == 0)
{
Debug.WriteLine("NULL");
}
else {
var resultquery = query.SingleOrDefault();
Debug.WriteLine("NOT NULL");
}
OR
if (query == null)
{
Debug.WriteLine("NULL");
}
else {
var resultquery = query.SingleOrDefault();
Debug.WriteLine("NOT NULL");
}
OR
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
時發生錯誤。所以我迷失了..希望有人能幫忙。謝謝
爲什麼不檢查'null',只是插入值? – Stefan
我編輯了你的標題和標籤,以反映這是特定於'Linq-to-XML'而不是'Linq-to-Entities' – Khan
我該如何檢查null? –