如何将没有空行的复制行从 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
,我认为您不会获得任何速度优化,但代码现在更短、更干净、更健壮且更易于维护。
我想让用户从程序界面复制粘贴添加代理地址,当按下按钮时,我想将它们复制到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
,我认为您不会获得任何速度优化,但代码现在更短、更干净、更健壮且更易于维护。