0

在访问不存在的父母的子元素时,是否有一种简单的方法可以避免空引用异常?例如我有这个查询:

            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()

它将三个元素(演员、作家、导演)统一为一个对象 Person。问题是我事先不知道是否存在元素“演员”或元素“导演”。这些元素是我需要访问的最终元素的父元素,如果它们不存在,我将得到一个空引用异常。所以我的问题是:我是否必须将查询分解为一组不可读的序列“如果!= null then”,还是有更方便的方法?

谢谢

4

1 回答 1

0

你可以先做检查。类似的东西

if(xDoc.Root.Element(imdbns + "Cast") != null && xDoc.Root.Element(imdbns + "Directors" != null)
{
   Persons = (from actor in ...
}
于 2012-12-06T08:32:09.350 回答