c# – 随着时间的推移,添加到列表变得非常慢
| 
 我正在解析一个大约有1000行的html表.我正在从一个< td>中添加~10个字符串.在每一行到列表< string>宾语.前200个左右的循环非常快,但随着时间的推移变得越来越慢. 
  
  这是我正在使用的代码: List<string> myList = new List<string>();
        int maxRows = numRows;
        for (int i = 1; i < maxRows; i++)
        { 
            TableRow newTable = myTable.TableRows[i];
            string coll = string.Format("{0},{1},{2},{3},{4}",newTable.TableCells[0].Text,newTable.TableCells[1].Text,newTable.TableCells[2].Text,newTable.TableCells[3].Text,newTable.TableCells[4].Text);
            myList.Add(coll);
            label1.Text = i.ToString();
        }我应该使用数组吗? 编辑:我将上面的代码放在一个新的方法上,该方法在一个新的线程上运行,然后使用以下代码更新我的标签控件: label1.Invoke((MethodInvoker)delegate
                {
                    label1.Text = i.ToString();
                });程序以一致的速度运行,不会阻止UI. 解决方法
 如果您大致知道集合中的范围(项目数),最好使用数组. 
  
  
  
 以下是AFAIK的工作原理,默认情况下以16个元素开头, 谢谢@Dypplvar list = new List< int>(1000);这也是一个优雅的选择,因为@Dyppl认为它是两个世界中最好的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 
