VB.Net迭代DataGridView.SelectedRows使用大量的RAM,DGV.Rows不会?

时间:2017-06-20 17:16:38

标签: .net vb.net performance loops datagridview

我正在迭代我的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的应用程序内存消耗几乎翻了一倍?

1 个答案:

答案 0 :(得分:0)

SelectedRows每次访问时都会创建一个包含所选项的新ArrayList,并且循环条件在每次迭代时都会访问它以获取计数。

您可以将结果存储在变量中,只会产生一次此开销。

Dim selectedRows = dgv.SelectedRows
For i = 0 To selectedRows.Count - 1

Next