由于MYTAG1不存在,因此我得到了一个空异常。我了解这是因为Element(“ MYTAG1”)为null,并且在其上调用Elements(“ MYTAG2”)无效。

我该如何处理以防止崩溃?

     var myItems = from myNode in Nodes.Element("MYTAG1").Elements("MYTAG2")
                           select new EPTableItem
                           {
                           //    Assign stuff here
                           };

最佳答案

我想不出一种将if语句合并到C#查询语法中的聪明方法,因此我将提出以下解决方案,该解决方案在执行查询之前检查所需的节点。

var myItems;
XElement myTag1 = myNode.Element("MYTAG1");

if (myTag1 != null)
{
    myItems = from myNode in myTag1.Elements("MYTAG2")
              select new EPTableItem
              {
                  //    Assign stuff here
              };
}

07-27 21:41