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 参照例外」をスローします。何故ですか?