编程 & 生活 -- 西西吹雪

开心工作,快乐生活 (原创文章,转载请注明出处)

导航

C#开发-ListView.CheckedItems的效率

看一段代码:

StringCollection arr = new StringCollection();
            
for (int i=0;i<=lvwExtents.CheckedItems-1;i++)
            {
                arr.Add(lvwExtents.CheckedItems[i].Text);
            }

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

可是换成了以下代码后,就完全正常了,飞快的就执行完了。
ListViewItem item;
            
for (int i=0;i<=this.lvwExtents.Items.Count-1;i++)
            {
                item 
= this.lvwExtents.Items[i];
                
if (item.Checked)
                    arr.Add(item.Text);
            }

奇怪吧。也许是因为每次循环时调用的lvwExtents.CheckedItems[i].Text代码,都会重新检测哪些项处于选中的状态的缘故吧。

posted on 2006-11-02 18:00  西西吹雪  阅读(1557)  评论(3编辑  收藏  举报