我有一个外部库,需要一个"XmlNode []"而不是XmlNodeList.有没有直接的方法来做到这一点,而无需迭代和转移每个节点?
我不想这样做:
XmlNode[] exportNodes = XmlNode[myNodeList.Count];
int i = 0;
foreach(XmlNode someNode in myNodeList) { exportNodes[i++] = someNode; }
Run Code Online (Sandbox Code Playgroud)
我在.NET 2.0中这样做,所以我需要一个没有linq的解决方案.
Rob*_*Rob 19
这种直截了当的方式怎么样......
var list = new List<XmlNode>(xml.DocumentElement.GetElementsByTagName("nodeName").OfType<XmlNode>());
var itemArray = list.ToArray();
Run Code Online (Sandbox Code Playgroud)
不需要扩展方法等......
XmlNode[] nodeArray = myXmlNodeList.Cast<XmlNode>().ToArray();
Run Code Online (Sandbox Code Playgroud)
试试这个(VS2008和目标框架== 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;
}
}
Run Code Online (Sandbox Code Playgroud)
来自这里的提示:IEnumerable和IEnumerable(Of T)2
| 归档时间: |
|
| 查看次数: |
22884 次 |
| 最近记录: |