当没有更多元素时如何处理 ElementsAfterSelf()?
How to handle ElementsAfterSelf() when there are no more elements?
我有一个 XML 文件。我正在使用 foreach 循环来检查所有子元素的内容。当我在最后一个元素并调用 ElementsAfterSelf()
时,它 returns 是一个非空列表,但在 VS 的调试器中,它说' "Enumerations yields no values." 我同意,因为有没有值,但我该如何检查,这样我就不会得到 nullreference 异常?
IEnumerable<XElement> tempElement = xUserInfo.ElementsAfterSelf();
if (tempElement.Elements().Count() != null)
//但是即使没有更多的元素也是如此
然后当我尝试
tempElement.First()
它抛出一个异常...我可以检查什么才不会出现异常?
Any
returns 如果序列中有任何元素则为真,也就是说它不为空。
如果您只对第一个值感兴趣,替代方法是使用 FirstOrDefault
而不是 First
,如果序列可能为空,并检查 [=13] 的结果=].
if (tempElement.Elements().Count() > 0)
试试这个。 Null 指的是空数据单元格。 Count() 向数据单元格返回零是不同的,而不是 null,这可能就是为什么您的 if 语句始终为真。
我有一个 XML 文件。我正在使用 foreach 循环来检查所有子元素的内容。当我在最后一个元素并调用 ElementsAfterSelf()
时,它 returns 是一个非空列表,但在 VS 的调试器中,它说' "Enumerations yields no values." 我同意,因为有没有值,但我该如何检查,这样我就不会得到 nullreference 异常?
IEnumerable<XElement> tempElement = xUserInfo.ElementsAfterSelf();
if (tempElement.Elements().Count() != null)
//但是即使没有更多的元素也是如此
然后当我尝试
tempElement.First()
它抛出一个异常...我可以检查什么才不会出现异常?
Any
returns 如果序列中有任何元素则为真,也就是说它不为空。
如果您只对第一个值感兴趣,替代方法是使用 FirstOrDefault
而不是 First
,如果序列可能为空,并检查 [=13] 的结果=].
if (tempElement.Elements().Count() > 0)
试试这个。 Null 指的是空数据单元格。 Count() 向数据单元格返回零是不同的,而不是 null,这可能就是为什么您的 if 语句始终为真。