0

存在しない親の子要素にアクセスするときに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()

これは、3つの要素(俳優、作家、監督)をオブジェクトPersonに統合します。問題は、要素「キャスト」が存在するのか、要素「ディレクター」が存在するのかを事前に知らないことです。これらの要素は、アクセスする必要のある最後の要素の親要素であり、それらが存在しない場合は、null参照例外が発生します。だから私の質問は:クエリを「if!= 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 に答える