【问题标题】:C# - Insert into Array ListC# - 插入数组列表
【发布时间】:2016-03-15 22:37:56
【问题描述】:

在 Insert Into ArrayList 按钮的 click 事件处理程序中,检查用户是否: 在 Position 文本框中输入了一个位置。在演员姓名文本框中输入演员的姓名。

检查这些文本框以查看用户是否输入了值。如果用户输入了不正确的值,请不要担心,只要他们输入了一个值。如果没有输入文本,则以消息框格式显示相关错误消息并退出该方法,因此不会进行进一步处理。

接着调用 InsertIntoArrayList,传递这些值并导致将新值插入到 ArrayList 中。

最后,调用 PopulateActors 更新其项目以反映更改。

到目前为止,我的代码没有插入到数组中:

 private void btnInsert_Click(object sender, EventArgs e)
        {            

            if (string.IsNullOrEmpty(txtPosition.Text))
            {
                MessageBox.Show("Please enter a Position");
                return;
            }
            if (string.IsNullOrEmpty(txtActorName.Text))
            {
                MessageBox.Show("Please enter an Actor Name");
                return;
            }

            InsertIntoArrayList(txtActorName.Text, Position);
            PopulateActors();
        }        

使用的方法有:

void InsertIntoArrayList(string txtActorName, int txtPosition)
            {

            ArrayList ActorArrayList = new ArrayList();

            ActorArrayList.Insert(txtActorName, txtPosition);

            }

还有:

void PopulateActors()
            {
                cboActor.Items.Clear();

                foreach (string Actor in ActorArrayList)
                {
                    cboActor.Items.Add(Actor);
                }
            }

新手编码器! 为您的帮助干杯:)

【问题讨论】:

  • 从哪里获得传递给插入代码的变量 Position?请注意,ActorArrayList 是在插入代码中声明的,因此在该方法之外无法看到。如果您的代码可以编译,那么您将在更全局的范围内声明另一个名为 ActorArrayList 的 ArrayList
  • 虽然这不能解决您当前的问题(Luka 已经很好地为您解决了),但您确实应该将 ArrayList 更改为 List<string>ArrayList 是一个无类型列表,当您知道列表应包含的类型时,确实不应该使用。
  • @Enigmativity 绝对正确,如果您可以访问更新版本的 C#。
  • Cheers 会记住这一点。

标签: c# arraylist


【解决方案1】:

你的问题在这里:

void InsertIntoArrayList(string txtActorName, int txtPosition)
{

      ArrayList ActorArrayList = new ArrayList();

      ActorArrayList.Insert(txtActorName, txtPosition);

}

每次调用此函数时,您都会创建一个新的 ArrayList 并向其中插入一些内容。但是,这个 ArrayList 会立即从内存中释放,因为功能块已经完成。

您需要向您的类添加一个实例成员并在其中插入您的数据。 你可以在你的类的顶部添加这样的东西:

private ArrayList  ActorArrayList = new ArrayList();

此外,Insert 需要 Int 作为其第一个参数,因此您可能需要切换这两个参数。

【讨论】:

  • 干杯!进行了这些更改,现在全部排序:) 谢谢!
猜你喜欢
  • 2015-07-04
  • 1970-01-01
  • 2018-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-13
  • 1970-01-01
  • 2022-11-02
相关资源
最近更新 更多