如何动态地在ArrayList中存储值

时间:2011-10-17 10:59:08

标签: c# asp.net arraylist

这是一个非常基本或相当简单的问题。 在我的代码中,我使用foreach值将值放在字符串变量中。 对于每次迭代,我想在一个arraylist中存储(一个接一个地)变量值。 然后通过索引检索arraylist值。

我正在尝试的代码:

foreach(string abc in namestring)
{
   string values = abc;
   ArrayList list = new ArrayList();
   list.Add(values);
}

例如:

  

如果'namestring'包含tom,dik,harry等值。然后'列表'应该   包含那些值为list(0)= tom,list(1)= dik,list(2)=   哈里。

问题在于将值存储在arraylist中

6 个答案:

答案 0 :(得分:6)

您必须在循环外声明ArrayList

ArrayList list = new ArrayList();
foreach(string abc in namestring)
{
   list.Add(abc);
}

此外,如果您使用的是.NET 2.0及更高版本,则应使用强类型List<string>代替:

List<string> list = new List<string>();

答案 1 :(得分:2)

在foreach

之上声明ArrayList list = new ArrayList();

答案 2 :(得分:2)

您可能希望在foreach循环之前创建列表。 Atm你正在收集新列表中创建foreach字符串,然后伪造它的引用。

答案 3 :(得分:1)

看起来你的namestring已经是一个集合(实现ICollection)......如果是这样你就可以在没有循环的情况下完成它。

        ArrayList list = new ArrayList();
        list.AddRange(namestring);
        return list;

        List<string> list = new List<string>();
        list.AddRange(namestring);
        return list;

或者,简单地使用构造函数

        ArrayList list = new ArrayList(namestring); 

        List<string> list = new List<string>(namestring);

答案 4 :(得分:1)

var list = new ArrayList();
foreach(string abc in namestring)
{           
    list.Add(abc);
}

答案 5 :(得分:1)

可以修复代码移动foreach之外的“new ArrayList()”行。

总之...

  

如果'namestring'包含tom,dik,harry等值。然后'列表'应该   包含那些值为list(0)= tom,list(1)= dik,list(2)= harry

namestring已经包含那些,如namestring [0] = tom等,所以你可以按原样使用它。