C# 使用ListView.CheckedItems慢的问题

2021-03-09 04:27

阅读:585

标签:count   bsp   view   i++   check   估计   str   subitems   没有   

看一段代码:

            Liststring> list = new Liststring>();

            for (int i = 0; i )
            {
                list.Add(lstView.CheckedItems[i].SubItems[1].Text);
            }

看上去没什么问题。可是今天我运行时,发现速度缓慢得像蜗牛一般。我的ListView有两千多条记录,全部处于选中状态。速度无法忍受,估计秒种处理的记录只有两三条。

 

一开始以为 List 占内存太多造成的慢,但后来测试,下边代码并没有问题,速度很快,所以问题出现在lstView.CheckedItems[i].SubItems[1].Text 这句代码上。

            for (int i = 0; i )
            {
                list.Add(lstView.Items[i].SubItems[1].Text);

            }

针对于使用ListView.CheckedItems慢的问题,可是换成了以下代码后,就完全正常了,飞快的就执行完了。

            ListViewItem item;
            for (int i = 0; i )
            {
                item = this.lstView.Items[i];
                if (item.Checked)
                {
                    list.Add(item.SubItems[1].Text);
                }
            }

具体什么原因引起的,我想应该是每次循环调用lstView.CheckedItems[i].SubItems[1].Text时,都会重新检测哪些项处于选中的状态或者涉及到装箱拆箱的缘故吧。

 

C# 使用ListView.CheckedItems慢的问题

标签:count   bsp   view   i++   check   估计   str   subitems   没有   

原文地址:https://www.cnblogs.com/hanguoshun/p/12759590.html


评论


亲,登录后才可以留言!