如果没有更多元素,如何处理ElementsAfterSelf()?

时间:2015-01-08 17:48:17

标签: c# xml debugging

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

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

//但即使没有更多元素

,这也总是如此

然后当我尝试

tempElement.First()

它引发了异常......我可以检查什么,所以我没有得到例外?

2 个答案:

答案 0 :(得分:2)

如果序列中有任何元素,则

Any返回true,也就是说它不为空。

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

答案 1 :(得分:0)

if (tempElement.Elements().Count() > 0)

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