如何使用变量名称声明变量

本文关键字:声明 变量 变量名 何使用 | 更新日期: 2023-09-27 17:55:52

如何在 for 循环中声明变量

foreach (System.Xml.XmlNode xmlnode in node)
{
    string AMSListName = xmlnode.Attributes["Title"].Value.ToString();
    /* the below assignment should be variable for each iteration */
    XmlNode ndViewFields + AMSListName = xmlDoc.CreateNode(XmlNodeType.Element,
                                                           "ViewFields", "");
}

我如何实现这一点?我希望 for 循环中的每个值都有不同的名称。这可能吗?

如何使用变量名称声明变量

使用集合:

List<XmlNode> nodes = new List<XmlNode>();
foreach (System.Xml.XmlNode xmlnode in node)
{
    string AMSListName = xmlnode.Attributes["Title"].Value.ToString();
    nodes.Add(xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", ""));
}

您可以通过索引或循环访问此列表:

foreach(var node in nodes)
{
    // ...
}

另一种方法 如果名称是标识符,请使用Dictionary

Dictionary<string, System.Xml.XmlNode> nodeNames = new Dictionary<string, System.Xml.XmlNode>();
foreach (System.Xml.XmlNode xmlnode in node)
{
    string AMSListName = xmlnode.Attributes["Title"].Value.ToString();
    nodeNames[AMSListName] = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
}

这会将已经可用的节点替换为给定名称,否则将添加它。

您可以通过名称访问它:

XmlNode node
if(nodeNames.TryGetValue("Some Name", out node)
{
    // ..
};

我建议使用字典或hastable之类的东西。 因为即使您确实创建了动态变量,以后将如何引用它们? 我不确定这是否可能。

            Hashtable ViewFields = new Hashtable();
        foreach (System.Xml.XmlNode xmlnode in node)
        {
            string AMSListName = xmlnode.Attributes["Title"].Value.ToString();
            XmlNode nd = xmlDoc.CreateNode(XmlNodeType.Element, "ViewFields", "");
            ViewFields.Add(AMSListName,nd);
        }