我有一个XML文件。我正在使用foreach循环来检查所有子元素的内容。当我在最后一个元素并调用ElementsAfterSelf()
时,它返回一个非空列表,但在VS的调试器中,它表示' "枚举不产生任何值。"我没关系,因为没有值,但我如何检查,所以我没有得到空引用异常?
IEnumerable<XElement> tempElement = xUserInfo.ElementsAfterSelf();
if (tempElement.Elements().Count() != null)
//但即使没有更多元素
,这也总是如此然后当我尝试
tempElement.First()
它引发了异常......我可以检查什么,所以我没有得到例外?
答案 0 :(得分:2)
Any
返回true,也就是说它不为空。
如果您只对第一个值感兴趣,则替代方法是使用FirstOrDefault
而不是First
,如果序列可能为空,并检查null
的结果
答案 1 :(得分:0)
if (tempElement.Elements().Count() > 0)
试试这个。 Null指的是空数据单元。向数据单元返回零的Count()是不同的而不是null,这可能是if语句始终为true的原因。