【问题标题】:How to handle ElementsAfterSelf() when there are no more elements?没有更多元素时如何处理 ElementsAfterSelf()?
【发布时间】:2015-03-06 22:30:53
【问题描述】:

我有一个 XML 文件。我正在使用 foreach 循环来检查所有子元素的内容。当我在最后一个元素并调用 ElementsAfterSelf() 时,它返回一个非空列表,但在 VS 的调试器中,它说“枚举不产生任何值”。我很好,因为没有值,但是我如何检查它,所以我没有得到空引用异常?

IEnumerable<XElement> tempElement = xUserInfo.ElementsAfterSelf();
if (tempElement.Elements().Count() != null)

//但即使没有更多元素也是如此

然后当我尝试

tempElement.First()

它会引发异常...我可以检查什么以免出现异常?

【问题讨论】:

    标签: c# xml debugging


    【解决方案1】:

    Any如果序列中有任何元素,则返回true,即不为空。

    如果您只对第一个值感兴趣,则替代方法是使用FirstOrDefault 而不是First,如果序列可能为空,并检查null 的结果。

    【讨论】:

      【解决方案2】:
      if (tempElement.Elements().Count() > 0)
      

      试试这个。 Null 指的是一个空的数据单元格。 Count() 将零返回到数据单元格是不同的,而不是 null,这可能是您的 if 语句始终为真的原因。

      【讨论】:

        猜你喜欢
        • 2023-02-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多