He encontrado estas dos palabras clave en VS IntelliSense. Traté de buscar en Google la diferencia entre ellos y no obtuve una respuesta clara. ¿Cuál de estos tiene el mejor rendimiento con archivos XML pequeños a medianos? GraciasCuál es la diferencia entre Linq a XML Descendientes y Elementos
155
A
Respuesta
249
Elements
encuentra solo los elementos que son descendientes directos, es decir, hijos inmediatos.
Descendants
encuentran los niños en cualquier nivel, es decir, niños, nietos, etc. ...
Aquí es un ejemplo que demuestra la diferencia:
<?xml version="1.0" encoding="utf-8" ?>
<foo>
<bar>Test 1</bar>
<baz>
<bar>Test 2</bar>
</baz>
<bar>Test 3</bar>
</foo>
Código:
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);
}
Resultado:
Elements : Test 1 Elements : Test 3 Descendants : Test 1 Descendants : Test 2 Descendants : Test 3
Si sabe que los elementos que desea son hijos inmediatos, obtendrá un mejor rendimiento si utiliza Elements
en lugar de Descendants
.
14
Descendants
buscará el subárbol completo del elemento actual para el nombre especificado (o devolverá una versión aplanada del árbol si no se proporciona ningún nombre), mientras que Elements
busca solo los elementos secundarios inmediatos del elemento actual.
Cuestiones relacionadas
- 1. Cuál es la diferencia entre LINQ ToDictionary y ToLookup
- 2. ¿Cuál es la diferencia entre Linq, DLinq y XLinq?
- 3. Linq: ¿Cuál es la diferencia entre Seleccionar y Dónde
- 4. En Linq, ¿cuál es la diferencia entre .FirstOrDefault y .SingleOrDefault
- 5. ¿Cuál es la diferencia entre XML-RPC y SOAP?
- 6. ¿Cuál es la diferencia entre SGML y XML?
- 7. LINQ to XML - Descendientes devuelve ningún resultado
- 8. Cuál es la diferencia entre "LINQ to Entities", "LINQ to SQL" y "LINQ to Dataset"
- 9. C# - Seleccione Descendientes XML con LINQ
- 10. ¿Cuál es la diferencia entre CreateWnd y CreateWindowHandle?
- 11. ¿Cuál es la diferencia entre a [:] = b y a = b [:]
- 12. ¿Cuál es la diferencia entre $ a y $$ a en php?
- 13. ¿Cuál es la diferencia entre ".equals" y "=="?
- 14. Cuál es la diferencia entre $ y jQuery
- 15. ¿cuál es la diferencia entre:.! y: r !?
- 16. ¿Cuál es la diferencia entre [indefinido] y [,]?
- 17. ¿Cuál es la diferencia entre " " y ""?
- 18. Cuál es la diferencia entre = y: =
- 19. ¿Cuál es la diferencia entre .ToString (+) y ""
- 20. Cuál es la diferencia entre $ (...) y `...`
- 21. ¿Cuál es la diferencia entre `##` y `hashCode`?
- 22. ¿Cuál es la diferencia entre + = y = +?
- 23. ¿Cuál es la diferencia entre dict() y {}?
- 24. ¿Cuál es la diferencia entre "$^N" y "$ +"?
- 25. ¿Cuál es la diferencia entre {0} y ""?
- 26. ¿Cuál es la diferencia entre estas consultas LINQ?
- 27. ¿Cuál es la diferencia entre los archivos .lib y .a?
- 28. ¿Cuál es la diferencia entre los archivos .so y .a?
- 29. ¿Cuál es la diferencia entre invocar y BeginInvoking a MessageBox?
- 30. ¿Cuál es la diferencia entre 'a' y '_l?
Gran respuesta, siempre pensé que los dos estaban un poco al revés como se destaca en su descripción (al describir Elementos, siempre debe usar la palabra "descendiente", ya que es un poco más opcional cuando se habla de descendientes – Mattisdada