这是一个非常基本或相当简单的问题。 在我的代码中,我使用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中
答案 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等,所以你可以按原样使用它。