HTML アジリティ パックを使用して Web サイトをスクレイピングしています。特定のテキストの「a」要素を含むすべての div タグを調べています。サンプルコードは次のとおりです。
var showLocations = (from div in document.DocumentNode.Descendants("div")
from a in div.DescendantNodes().Where(x => x.Name == "a")
where a.Attributes["href"].Value.Contains("show_locs=Y")
select a).SingleOrDefault();
ただし、要素が見つからない場合は null を返す代わりに、「Null 参照例外」をスローします。何故ですか?