2013-09-25 64 views
0

我试图插入一个人的名字进入我的ArrayList中的特定位置,当我运行此我得到一个错误:插入到特定位置的ArrayList

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

用户将进入到名称文本框然后插入字符串的位置(索引).. 任何建议更简单的方法来编码这种方式或我可以改变它?

我得到的错误是 - 这the index is out of range。我认为转换可能会搞砸了?

+1

显示如何创建ActorArrayList和确切的错误消息 – ilansch

+0

您是否检查过posNum实际上是一个可以插入的数字?像在ArrayList的大小内? –

+0

System.Collections.ArrayList ActorArrayList = new System.Collections.ArrayList(); 数组列表中充满了来自文本文件的5个名称,然后用户可以通过该表单向其添加新名称,并将显示在组合框中。 –

回答

2

指数从零开始。所以,第一项为索引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<T>而不是ArrayList,它们是冗余的。 c# When should I use List and when should I use arraylist?

0

您可以随时在数组中使用.ToList,然后使用List插入函数。