我在VS IntelliSense中遇到了这两个关键字。我试图搜索它们之间的差异,但没有得到明确的答案。在中小型XML文件中,哪一个具有最佳性能。谢谢
Elements仅查找那些 直接 后代的元素,即直系子代。
Elements
Descendants 查找任何级别的孩子,例如,孩子,孙子等等。
Descendants
这是一个展示差异的示例:
<?xml version="1.0" encoding="utf-8" ?> <foo> <bar>Test 1</bar> <baz> <bar>Test 2</bar> </baz> <bar>Test 3</bar> </foo>
码:
XDocument doc = XDocument.Load("input.xml"); XElement root = doc.Root; foreach (XElement e in root.Elements("bar")) { Console.WriteLine("Elements : " + e.Value); } foreach (XElement e in root.Descendants("bar")) { Console.WriteLine("Descendants : " + e.Value); }
结果:
元素:测试1 元素:测试3 后裔:测试1 后裔:测试2 后裔:测试3
如果您知道所需的元素是直接子元素,那么如果使用Elements而不是,则会获得更好的性能Descendants。