我有一个包含这样列的文件:
- ķ
- ķ
- ķ
- SND
- 磷
- 磷
- SND
- ķ
...
列的长度例如为 20000。我使用以下 C# 代码沿此列移动:
while (true)
{
// Find SND
dest_cells = ex_cells.Find("SND", dest_cells, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
Excel.XlSearchDirection.xlNext, false, false, false);
// END?
if (dest_cells.Row < row)
return false;
row = dest_cells.Row;
// Find K
dest_cells = ex_cells.Find("K", dest_cells, Excel.XlFindLookIn.xlValues, Excel.XlLookAt.xlWhole, Excel.XlSearchOrder.xlByColumns,
Excel.XlSearchDirection.xlNext, false, false, false);
// END?
if (dest_cells.Row < row)
return false;
row = dest_cells.Row;
// Some operations
/*there were some operations, but I commented them. So they don't influence on performance*/
}
每次后续搜索的持续时间都在增加。我没有测量时间。但只是为了解释,让它成为:第一个 Find 需要 0.1 秒,第二个 0.2 秒,第十个 1 秒,二十个 2 秒,依此类推。
为什么?我无法理解