J'ai une bibliothèque externe qui nécessite un "xmlnode []" au lieu de xmlnodeliste. Y a-t-il une façon directe de le faire sans itération et transfert de chaque nœud?
Je ne veux pas faire ceci: p> Je fais cela dans .net 2.0 J'ai besoin d'une solution sans linq. P> p>
3 Réponses :
Essayez ceci (vs2008 et cadre cible == 2.0): indice d'ici: iEnumerable et iEnumerable (de T) 2 P> P>
@CATX OP a demandé une solution sans linq et d'autres réponses l'utilisent. La méthode shim code> est proposée sous forme de méthode d'extension, elle peut donc être réutilisée et placée dans une autre classe avec d'autres méthodes d'extension. Si vous avez des exigences différentes, vous devez poser une nouvelle question.
Que diriez-vous de cette voie directe ...
var list = new List<XmlNode>(xml.DocumentElement.GetElementsByTagName("nodeName").OfType<XmlNode>()); var itemArray = list.ToArray();
detype code> est une extension LINQ.
XmlNode[] nodeArray = myXmlNodeList.Cast<XmlNode>().ToArray();
Y a-t-il des raisons de ne pas itérer sur le code> xmlnodelist code> et l'utiliser pour charger le
xmlnode [] code>? Parce que si vous l'aviez fait cela, vous auriez fini maintenant.
Aucune raison, c'est la mise en œuvre actuelle. Cela me semble étrange que cela ne puisse pas être fait avec plus de sémantique de compilateur.
La sémantique du compilateur pour cela se trouve dans les nouvelles versions de c # /. NET :) Si vous êtes coincé avec une version plus ancienne, alors vous êtes coincé avec ce que vous avez.