如何将没有空行的复制行从 RichTextBox 重构到 ArrayList

How to refactor this copy lines without empty ones from a RichTextBox to an ArrayList

我想让用户从程序界面复制粘贴添加代理地址,当按下按钮时,我想将它们复制到arraylist并继续arraylist,但是当行数很高时,这需要很长时间。当我添加10,000个代理并尝试按钮时,等待一段时间后出现错误。如何快速将richtextbox中的项目添加到arraylist列表中?

我的代码:

ArrayList plist = new ArrayList();
    
if (richTextBox1.Lines.Length > 0 && checkBox1.Checked == true)
                {
                    for (int i = 0; i < richTextBox1.Lines.Length; i++)
                    {
                        if (richTextBox1.Lines[i].ToString() != "")
                        {
                            plist.Add(richTextBox1.Lines[i].ToString());
                        }
                    }
                }

你可以在条件检查后写在一行中:

if ( checkBox1.Checked && richTextBox1.Lines.Length > 0 )
  plist.AddRange(richTextBox1.Lines.Where(line => line != "").ToArray()); //or line.Trim() != ""

除了不必要的 ToString,我认为您不会获得任何速度优化,但代码现在更短、更干净、更健壮且更易于维护。