码迷,mamicode.com
首页 > Windows程序 > 详细

C# 使用ListView.CheckedItems慢的问题

时间:2020-04-23 12:08:19      阅读:108      评论:0      收藏:0      [点我收藏+]

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

看一段代码:

            List<string> list = new List<string>();

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

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

 

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

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

            }

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

            ListViewItem item;
            for (int i = 0; i < lstView.Items.Count; 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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!