C#开发-ListView.CheckedItems的效率
看一段代码:
StringCollection arr = new StringCollection();
for (int i=0;i<=lvwExtents.CheckedItems-1;i++)
{
arr.Add(lvwExtents.CheckedItems[i].Text);
}
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);
}
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代码,都会重新检测哪些项处于选中的状态的缘故吧。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步