如果基于条件逻辑填充数组。假设数据如下所示:
Col A Col B Col C colD
num1 cond1 cond2 info
num2 cond1 cond2 info
num3 cond1 cond2 info
num4 cond1 cond2 info
理论上可能有很多数字和更多条件/信息列。阵列应填写满足col B和C条件的数字和信息。
它更快:
1)对数组进行尺寸标注,使其可以保存所有数字
当条件不满足时,它会跳过填充“行”(数组会有空白)
在循环中读取数组的内容时,如果'line'为空,则让循环跳过读取
数组的图形表示:
Array(0, 0) num1 Array(0,1) info
Array(1, 0) (empty) Array(1,1) (empty)
Array(2, 0) (empty) Array(2,1) (empty)
Array(3, 0) num4 Array(3,1) info
Array(4, 0) (empty) Array(4,1) (empty)
Array(5, 0) num6 Array(5,1) info
这样做的优点是尺寸仅为1次。 Redim Preserve需要一些资源,我们会保存这些资源。
2)Redim在我们去的时候保留数组
只有在满足条件时才填充数组
数组的图形表示:
Array(0, 0) num1 Array(0,1) info
Array(3, 0) num4 Array(3,1) info
Array(5, 0) num6 Array(5,1) info
这具有更小阵列的优点。将其处理为输出不需要在处理阵列之前检查它是否为空白。
我们假设空白没有任何价值(填充空白的IE从不添加任何有价值的信息)
答案是否取决于以下因素;
- 条件数
- 填充一行所需的时间长度(IE列数)
- 数组在读取时循环的次数
- 最终会变成空白的行的比例
或者答案总是一样的,IE总是比另一个好?