我需要创建一个布尔值数组,其规模可能为 100,000 甚至数百万个条目。它还需要超快,因此每次迭代的每一毫秒都很重要。
在开始循环时,我已经知道数组中有多少条目。问题是,预先创建一个 bool 数组并按索引填充值会更快(这是随机访问 - 可能很慢?),还是我应该创建一个List<bool>
,继续向列表中添加条目,然后在结束返回.ToArray()
?
换句话说:
选项1
var array = new bool[size];
for (var n=0; n<size; n++)
array[n] = GetValue(n);
return array;
选项 2
var list = new List<bool>();
for (var n=0; n<size; n++)
list.Add(GetValue(n));
return list.ToArray();
或者也许有更快的第三种方式?