C# 尝试使用linq to xml检索不存在的父级的子级时,避免出现空引用异常

C# 尝试使用linq to xml检索不存在的父级的子级时,避免出现空引用异常,c#,.net,linq-to-xml,C#,.net,Linq To Xml,在访问不存在父项的child元素时,有没有一种简单的方法可以避免null引用异常?例如,我有以下查询: Persons = (from actor in xDoc.Root.Element(imdbns + "Cast").Elements(imdbns + "Actor") select new Person { Name = (string)actor.Element(imdbns + "Person").Element(

在访问不存在父项的child元素时,有没有一种简单的方法可以避免null引用异常?例如,我有以下查询:

            Persons = (from actor in xDoc.Root.Element(imdbns + "Cast").Elements(imdbns + "Actor")
                       select new Person { Name = (string)actor.Element(imdbns + "Person").Element(imdbns + "Name"), Role = "Actor" }).Union(
                       from director in xDoc.Root.Element(imdbns + "Directors").Elements(imdbns + "Person")
                       select new Person { Name = (string)director.Element(imdbns + "Name"), Role = "Director" }).Union(
                       from writer in xDoc.Root.Descendants(imdbns + "Writer")
                       select new Person { Name = (string)writer.Element(imdbns + "Person").Element(imdbns + "Name"), Role = "Writer" }).ToList()
它将三个要素(演员、作家、导演)统一为对象人物。问题是我事先不知道元素“Cast”是否存在,或者元素“Directors”是否存在。这些元素是我需要访问的最终元素的父元素,如果它们不存在,我将得到一个null引用异常。所以我的问题是:我必须将查询分解成一组不可读的序列“if!=null then”,还是有更方便的方法


谢谢你可以先检查一下。类似于

if(xDoc.Root.Element(imdbns + "Cast") != null && xDoc.Root.Element(imdbns + "Directors" != null)
{
   Persons = (from actor in ...
}