我正在迭代我的DGV中的选定项目。
For i = 0 To dgv.SelectedRows.Count - 1
Next
即使是那个没有代码的循环,RAM的使用量也会从~40mb增加到~70mb,具体取决于我选择了多少行。
现在,如果我做了几乎相同的事情,使用Rows属性,执行循环时RAM使用率保持不变。
For i = 0 To dgv.Rows.Count - 1
Next
2之间有什么区别?为什么SelectedRows的应用程序内存消耗几乎翻了一倍?
答案 0 :(得分:0)
SelectedRows每次访问时都会创建一个包含所选项的新ArrayList,并且循环条件在每次迭代时都会访问它以获取计数。
您可以将结果存储在变量中,只会产生一次此开销。
Dim selectedRows = dgv.SelectedRows
For i = 0 To selectedRows.Count - 1
Next