Convert XmlNodeList to XmlNode[] Convert XmlNodeList to XmlNode[] xml xml

Convert XmlNodeList to XmlNode[]


How about this straightfoward way...

var list = new List<XmlNode>(xml.DocumentElement.GetElementsByTagName("nodeName").OfType<XmlNode>());var itemArray = list.ToArray();

No need for extension methods etc...


 XmlNode[] nodeArray = myXmlNodeList.Cast<XmlNode>().ToArray();


Try this (VS2008 and target framework == 2.0):

static void Main(string[] args){    XmlDocument xmldoc = new XmlDocument();    xmldoc.LoadXml("<a><b /><b /><b /></a>");    XmlNodeList xmlNodeList = xmldoc.SelectNodes("//b");    XmlNode[] array = (        new System.Collections.Generic.List<XmlNode>(            Shim<XmlNode>(xmlNodeList))).ToArray();}public static IEnumerable<T> Shim<T>(System.Collections.IEnumerable enumerable){    foreach (object current in enumerable)    {        yield return (T)current;    }}

Hints from here: IEnumerable and IEnumerable(Of T) 2