使用XNodeEqualityComparer或XElement.DeepEquals来比较xml对象是否更好?

sch*_*ack 9 c# xml

我需要比较两个xml文档.

假设以下每个XElement的负载来自Stream:

XElement actualElement = XElement.Load(actual);
XElement expectedElement = XElement.Load(expected);
Run Code Online (Sandbox Code Playgroud)

使用它,以下哪两个更好:

XNodeEqualityComparer comparer = new XNodeEqualityComparer();
comparer.Equals(actualElement, expectedElement);
Run Code Online (Sandbox Code Playgroud)

要么

XElement.DeepEquals(actualElement, expectedElement);
Run Code Online (Sandbox Code Playgroud)

我知道第二个选项更短,但我更感兴趣的是你在使用其中一个时是否获得任何速度提升或更好/更深的比较.比较本身需要比较两个xml文档之间的元素,属性和所有值.

dtb*_*dtb 11

XNodeEqualityComparer.Equals方法只是调用XNode.DeepEquals方法.所以这两个电话没有区别.

  • 谢谢.我想如果我实际上已经启动了Reflector并查看了XNodeEqualityComparer.Equals,我会看到:public bool Equals(XNode x,XNode y){return XNode.DeepEquals(x,y); }.卫生署! (2认同)