for (int i = 0; i < str.Length; i++)
{
for (int j = 0; j < lbxMB.Items.Count; j++)
{
if (str[i].Trim().Equals(lbxMB.Items[j].ToString().Trim()))
{
lbxMB.Items.RemoveAt(j);
break;
}
}
}
lbxMB是一个ListBox控件,str是一个string数组,我的功能是根据外部文件中的数据和ListBox中的数据做比较如果有相同的就删除ListBox中的数据。比如说str数组中四万条数据。listBox中四万条数据的话执行速度需要40多秒。如何效率更高啊!跪求高手指教!
解决方案 »
- winform 热键冲突
- Datagridview 后台刷新报错求解
- 系统服务问题
- 有谁能帮忙详细解析一下这段代码啊,求助
- 求助:我将两个bindingsource的datasource设为一个datatable.
- 用哈唏加密法加密的数据怎样还原?
- 请问socket如何连接某个局域网里的机器
- 求解决方案(分不够再加)先给70分
- C# 将字符串反过来读的函数是什么?
- C#打包应用安装后,显示“默认公司名称”,想问问通过哪里可以修改???
- webbrowser访问https://abc.com/base.dll?action=23出现问题
- 用那个谷歌翻译网站 在IE8下出现找不到main_zh-CN.js这个文件
还是要看 你删除的多,还是加载的多,
如果删除的多,不如全删除掉,把 有用的重新加载到LISTBOX里面去.
EndUpdate
可以提高效率
lbxMB.BeginUpdate();
for (int i = 0; i < str.Length; i++)
{
for (int j = 0; j < lbxMB.Items.Count; j++)
{
if (str[i].Trim().Equals(lbxMB.Items[j].ToString().Trim()))
{
lbxMB.Items.RemoveAt(j);
break;
}
}
}
lbxMB.EndUpdate();以前的要50多秒。现在要17秒!还能再快吗