【问题标题】:How to make this array + function to work?如何使这个数组+函数起作用?
【发布时间】:2012-08-28 22:19:28
【问题描述】:

我的阵列需要帮助。我是 C# Winforms 的新手。

这是我的函数所在的数组,我正在尝试将数组发布到 XML 文件中:

    // ------------------- Functions
    static void XML_Array(string Data_Array)
    {
        String xmlfile = "/XMLFiles/Settings_Data.xml";

        XmlTextWriter xwriter = new XmlTextWriter(xmlfile, Encoding.Unicode);

        xwriter.WriteStartDocument();

        xwriter.WriteStartElement("XMLFILE");

        foreach (KeyValuePair<string, string> kvp in Data_Array)
        {
            String Element_Name = kvp.Key;
            String Element_Value = kvp.Value.ToString();

            xwriter.WriteStartElement(Element_Name);
            xwriter.WriteString(Element_Value);
            xwriter.WriteEndElement();
        }

        xwriter.WriteEndDocument();
        xwriter.Close();

    }

这是我的数组,这里我要做的是当我按下按钮 2 以在我的函数上发送数组,以及在 XML 文件中添加数组数据的函数

    private void button2_Click(object sender, EventArgs e)
    {
        Dictionary<string, string> Data_Array = new Dictionary<string, string>();
        Data_Array.Add("Name", "textBox3.Text"); // Alex
        Data_Array.Add("Year", "textBox4.Text"); // 1988

        XML_Array(Data_Array);
    }

更新

如果我的数组是,我该怎么做

Dictionary<string, string> Data_Array = new Dictionary<string, string>();
Data_Array.Add("Name", textBox3.Text); // Alex
Data_Array.Add("Year", textBox4.Text); // 1988

Data_Array.Add("Birthday", new Dictionary<string, string>());

在生日之后添加日、月

【问题讨论】:

  • 将某些东西命名为“数组”会消除它是字典的事实......
  • 您最好重命名变量以避免混淆。
  • 我会帮你解决下一个问题 -- "textBox3.Text" 应该是 textBox3.Text(没有引号)。
  • 我也反对,因为编译器应该准确地告诉你这里发生了什么。

标签: c# xml winforms file


【解决方案1】:

将方法的签名更改为

static void XML_Array(Dictionary<string, string> Data_Array)

因为它不是string,而是Dictionary

正如 varg 和 Austin 所评论的那样,您应该考虑重命名变量,因为当参数名称为 Data_Array 但实际上它是 Dictionary 时,它会令人困惑,这是一种完全不同类型的集合。您可能想要添加现有TextBox 控件的Text 属性,而不是字符串文字(带引号)"textBox3.Text"

Data_Array.Add("Name", textBox3.Text); // Alex
Data_Array.Add("Year", textBox4.Text); // 1988

TextBox3TextBox4 也是不错的新名称候选者。

【讨论】:

  • 根据您更新的问题:假设 BirthDay(以下代码中的变量bd)存储为DateTime,您可以通过以下方式将日期和月份作为字符串:dict.Add("BirthDay",string.Format("{0}-{1}",bd.Day,bd.Month)); .除此之外,如果可行,请考虑接受答案。 meta.stackexchange.com/questions/5234/…如果您还有其他问题,请提出新问题。
猜你喜欢
  • 2019-10-28
  • 2011-04-15
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 2019-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多