我有以下代碼LINQ查詢返回空結果
nodes = data.Descendants(XName.Get("{http://schemas.microsoft.com/LiveSearch/2008/04/XML/web}Results")).Nodes();
System.Collections.Generic.IEnumerable<Result> res = new List<Result>();
if (nodes.Count() > 0)
{
var results = from uris in nodes
select new Result
{
URL =
((XElement)uris).Element(XName.Get("{http://schemas.microsoft.com/LiveSearch/2008/04/XML/web}Url")).Value,
Title =
((XElement)uris).Element(XName.Get("{http://schemas.microsoft.com/LiveSearch/2008/04/XML/web}Title")).Value,
Description =
((XElement)uris).Element(XName.Get("{http://schemas.microsoft.com/LiveSearch/2008/04/XML/web}Description")).Value,
DateTime =
((XElement)uris).Element(XName.Get("{http://schemas.microsoft.com/LiveSearch/2008/04/XML/web}DateTime")).Value,
};
res = results;
}
如果結果是誰擁有這些URL一個對象,標題,描述和日期時間變量的定義。
這一切都正常工作,但是當節點中的'節點'不包含描述元素(或至少我認爲多數民衆贊成什麼投擲它)程序命中「res =結果;」 一行代碼並拋出「對象引用未設置爲...」錯誤,並在「選擇新結果」後突出顯示整個部分。
如何解決此問題?
問題依然存在..也許它不是從節點丟失的元素。有沒有一種方法可以用不同的方式來添加「保護措施」? – Ryan
@Ryan:嘗試我的替代(更簡單)的代碼,如果仍然失敗,請編輯一個簡短的* complete *程序(包括XML)到您的問題中,以便我們可以看到發生了什麼。 –
這種更好的編寫代碼的方式避免了這個問題..非常感謝Jon – Ryan