Resharper说这种表达总是正确的。为什么?

时间:2014-01-20 14:23:36

标签: 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不这么认为呢?

1 个答案:

答案 0 :(得分:18)

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