我在VS IntelliSense中遇到了这两个关键词.我试图用谷歌搜索它们之间的区别,但没有得到明确的答案.其中哪一个对中小型XML文件的性能最好.谢谢
我在VS IntelliSense中遇到了这两个关键词.我试图用谷歌搜索它们之间的区别,但没有得到明确的答案.其中哪一个对中小型XML文件的性能最好.谢谢
Elements
只查找direct个后代的元素,即直系子代.
Descendants
查找任何级别的 children ,即 children 、孙子女等...
下面是一个例子来说明这种差异:
<?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);
}
结果:
Elements : Test 1 Elements : Test 3 Descendants : Test 1 Descendants : Test 2 Descendants : Test 3
如果你知道你想要的元素是直系子元素,那么如果你使用Elements
而不是Descendants
,你将获得更好的性能.