【发布时间】:2014-06-24 05:15:28
【问题描述】:
Arraylist.add() 正在覆盖由 c# 中的循环构建的 Arraylist 中的所有先前值。代码是:
public ArrayList MakeList(int size, int iterations)
{
ArrayList myList = new ArrayList(iterations);
for (int run = 0; run < iterations; run++)
{
byte[] _byteArray = new byte[size];
bool success = false;
while (!success)
{
//Some Operations
if(condition)
success = true;
else
continue;
if(success)
break;
}
myList .Add(_byteArray );
}
return myList;
}
上面的循环总是用最新的字节数组覆盖 List 中的值。请帮我解决这个问题。
【问题讨论】:
-
“覆盖”是什么意思?
ArrayList myList = new ArrayList(iterations);--- 这里是空的。所以没有什么可以覆盖 -
您不应该使用
ArrayList开始。使用通用T[]数组或List<T>。现在已经不是 2003 年了…… -
旁注:
success = true在循环中没有任何条件。意味着您只需进行一次循环迭代。你的问题仍然不完整。 -
我感觉 OP 试图简化代码以使其成为一个易于阅读的问题,但在途中删除了一些关键代码行......
-
发布的代码没有显示明显的错误。尝试创建一个小而完整的(控制台)应用程序来演示您的问题。