J’ai tombé sur ces deux mots-clés dans l’IntelliSense VS. J’ai essayé de googler la différence entre eux et n’a pas obtenu une réponse claire. Qui d'entre eux ont les meilleures performances avec petit à moyens fichiers XML. Merci
Réponses
Trop de publicités?Elements
trouve uniquement les éléments qui sont directement descendants, c'est à dire les enfants immédiats.
Descendants
trouve les enfants à tous les niveaux, à savoir les enfants, petits-enfants, etc...
Voici un exemple montrant la différence:
<?xml version="1.0" encoding="utf-8" ?>
<foo>
<bar>Test 1</bar>
<baz>
<bar>Test 2</bar>
</baz>
<bar>Test 3</bar>
</foo>
Code:
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);
}
Résultat:
Éléments : Test 1 Éléments : Test 3 Descendants : Test 1 Descendants : Test 2 Descendants : Test 3
Si vous savez que les éléments que vous souhaitez sont immédiats des enfants, alors vous obtiendrez de meilleures performances si vous utilisez Elements
au lieu de Descendants
.
Adam Robinson
Points
88472