Jawaban:
Elementshanya menemukan unsur-unsur yang merupakan keturunan langsung , yaitu anak-anak langsung.
Descendants menemukan anak-anak di tingkat mana pun, yaitu anak-anak, cucu, dll ...
Berikut adalah contoh yang menunjukkan perbedaan:
<?xml version="1.0" encoding="utf-8" ?>
<foo>
<bar>Test 1</bar>
<baz>
<bar>Test 2</bar>
</baz>
<bar>Test 3</bar>
</foo>
Kode:
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);
}
Hasil:
Elemen: Uji 1 Elemen: Tes 3 Keturunan: Tes 1 Keturunan: Tes 2 Keturunan: Tes 3
Jika Anda tahu bahwa unsur-unsur yang Anda inginkan adalah anak-anak segera maka Anda akan mendapatkan kinerja yang lebih baik jika Anda menggunakan Elementsbukan Descendants.
Descendantsakan mencari seluruh subtree elemen saat ini untuk nama yang ditentukan (atau akan mengembalikan versi pohon yang rata jika tidak ada nama yang diberikan), sedangkan Elementsmencari hanya anak-anak langsung dari elemen saat ini.