c# - ReSharper 表示此表达式始终为真。为什么?

标签 c# xml resharper

我正在尝试确定 XML 节点属性是否存在。这是我的代码:

var xmlNode = element.Attributes("parent");
if (xmlNode != null) // Expression is always true
{
    var parentNodeId = element.Attribute("parent").Value;
    if (groupables.ContainsKey(parentNodeId))
    {
        parent = groupables[parentNodeId];
    }
}

ReSharper 告诉我,我检查 xmlNode 是否为 null 的行将始终为真。这是为什么?我正在解析一个 XML 文件,一些节点包含“parent”作为属性。有些没有。那么,为什么 ReSharper 不这么认为呢?

最佳答案

因为 Attributes 将返回一个长度为 0 的列表,它永远不会为 null

关于c# - ReSharper 表示此表达式始终为真。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21236422/

相关文章:

修复命名约定问题的 Resharper 功能

visual-studio - 大型项目的捐赠者,使用还是不使用?

c# - 为什么不能在 C# 中没有大括号的 switch 部分中使用 using 变量?

c# - XML Linq 新手问题

c# - 用于创建派生类型的 Resharper 编辑模板

xml - 在 Haskell 中解析 XML

android - 在另一个布局中以编程方式膨胀布局

c# - 如何通过单击另一种形式的按钮来运行 Game1

c# - Ms Bot 框架 - 在哪里存储数据?

c# - 为什么 Authentication Cookie 对 [Authorize] 属性不起作用?