【问题标题】:Insert to arraylist in specific position插入到特定位置的arraylist
【发布时间】:2013-09-30 16:23:21
【问题描述】:

我试图将一个人的名字插入到我的数组列表中的特定位置,运行时出现错误:

public void InsertIntoArrayList(string actName, int posNum)
{
    snip
}

用户将在名称文本框中输入名称,然后输入要插入字符串的位置(索引)。 关于更简单的编码方式或我可以更改它的方式的任何建议?

我得到的错误是-the index is out of range。我假设转换可能搞砸了?

【问题讨论】:

  • 展示如何创建 ActorArrayList 和确切的错误信息
  • 您是否检查过 posNum 实际上是一个可以插入的数字?像在 ArrayList 的大小范围内?
  • System.Collections.ArrayList ActorArrayList = new System.Collections.ArrayList();数组列表中填充了来自文本文件的 5 个名称,然后用户可以通过表单向其中添加新名称,它将显示在组合框中。
  • 您是否在问第二个与您上次编辑无关的问题?然后澄清您的原始问题是否得到了回答(您可以使用答案旁边的接受按钮来做到这一点)。然后再问一个问题。
  • 是的,我有第二个快速问题,不知道该怎么做.. 我刚刚编辑了它..

标签: c#


【解决方案1】:

索引从零开始。所以第一项在索引 0 处,第十项在索引 9 处。ArrayList.Insert:

int posNum;
if(!int.TryParse(txtPosition.Text, out posNum))
{
    // show message
    return;
}
else if(posNum < 0 || posNum > ActorArrayList.Count)
{
    // show message
    return;
}
ActorArrayList.Insert(posNum, actName);

如果你想在最后添加对象,你只需要使用Add

ActorArrayList.Add(actName);

注意:您应该使用强类型的List&lt;T&gt; 而不是ArrayList,同时它们是多余的。 c# When should I use List and when should I use arraylist?

【讨论】:

    【解决方案2】:

    您始终可以在数组上使用 .ToList,然后使用 List 插入函数。

    【讨论】:

      猜你喜欢
      • 2011-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-27
      相关资源
      最近更新 更多