繁体   English   中英

我可以在不循环的情况下从XML文档声明和填充数组吗?

[英]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.XPathUsing 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM