![](/img/trans.png)
[英]Why can't I declare an implicitly typed array without an initializer?
[英]Can I declare and fill an array from an XML document without looping?
我想用XML文档中的元素填充新的字符串数组。
在VBA中,我使用集合来管理此逻辑:
For Each x In xmlDoc.SelectNodes("//a")
MyCollection.add (x.Attributes.getNamedItem("href").Text)
Next x
但是我真正想做的是将相同的集合放入C#的数组中,例如:
string[] MyArray = new string[]
{
xmlDoc.SelectNodes("//a").Attributes.getNamedItem("href").Text
};
这可能吗? 还是一些类似的方法可以做到这一点而无需循环并单独添加到数组中?
这会做
string[] MyArray = XDocument.Parse(xml).XPathSelectElements("//a").Select(e => e.Attributes("href").FirstOrDefault().Value).ToArray()`
编辑:需要Using System.Xml.XPath
和Using System.XML.Linq
才能工作
您可以使用LINQ来实现以下目的:
string[] MyArray = xmlDoc
.SelectNodes("//a")
.Cast<XmlNode>()
.Select(e => e.Attributes.GetNamedItem("href").InnerText)
.ToArray();
别忘了导入Linq( using System.Linq;
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.