【问题标题】:Changing array values with text boxes使用文本框更改数组值
【发布时间】:2016-09-05 10:57:13
【问题描述】:

在我的表单中,一个标签应显示数组中的所有名称,然后第二个数组应根据数组中的位置更改名称。

这是我使用的代码:

location = int.Parse(txtLocation.Text);

        name = Convert.ToString(txtName.Text);

        string[] strOriginalNames = new string[4]; // Declares a new string variable called strOriginalNames

        strOriginalNames[0] = "John";
        strOriginalNames[1] = "Paul";
        strOriginalNames[2] = "Rodney"; // Set values to each element in the array
        strOriginalNames[3] = "David";
        strOriginalNames[4] = "Kathryn";

        foreach (string originalName in strOriginalNames)
        {
            lblOriginalNames.Text += originalName + "<br>";
        }

        strOriginalNames(location) = (name);

        foreach (string newName in strOriginalNames)
        {
            lblNewNames.Text += newName + "<br>";
        }

唯一的错误是这段代码 sn-p:

strOriginalNames(location) = (name);

这也是我的表单截图:

为了让代码正确运行,数组中的第二个元素应该在New Array

下改为Andrew

有人知道如何纠正我的代码中的错误吗?

【问题讨论】:

  • 位置在哪里初始化?你的代码中没有这样的变量!
  • 您可以包含您遇到的错误。这将有助于确定问题。

标签: c# .net arrays loops


【解决方案1】:

试试

strOriginalNames[location] = name;

【讨论】:

  • 正确,但是位置初始化在哪里,它的值来自哪里?
  • 它认为它是从 'txtLocation.Text' 解析的。第一行。初始化似乎在其他地方......
  • @MarcelTheis - 假设变量在其他地方初始化。无论如何,我认为我们需要有他所指的实际错误。
  • 它在我的代码中在该代码 sn-p 之前初始化。非常感谢。
【解决方案2】:

只是为了你的利益,因为马丁已经正确而简洁地回答了,你可以这样写你的代码:

location = int.Parse(txtLocation.Text);
name = Convert.ToString(txtName.Text);
string[] strOriginalNames = new[] { "John", "Paul", "Rodney", "David", "Kathryn" };
lblOriginalNames.Text = String.Join("<br>", strOriginalNames);
strOriginalNames[location] = name;
lblNewNames.Text = String.Join("<br>", strOriginalNames);

略有不同的是,最后一个元素后面没有"&lt;br&gt;",但我认为这可能就是你想要的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-26
    • 2021-08-17
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多