微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何将此没有空的复制行从 RichTextBox 重构为 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 之外,您不会获得任何速度优化,但代码现在更短、更干净、更健壮且更易于维护。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。