VB.net循环需要8秒,我觉得很慢

VB.net循环需要8秒,我觉得很慢,vb.net,for-loop,foreach,visual-studio-2015,Vb.net,For Loop,Foreach,Visual Studio 2015,我以前发布过类似的问题,但即使有回复,我仍然无法让代码更快。我现在已经将代码修改为原来的样子,并正在寻找如何加快代码速度的建议 我有一个richtextbox,它有30k行,当for-each循环到达richtextbox的某一行(包含30k行)时,我需要替换一块文本。(如果在此代码中未声明变量,则表示它们是全局变量) 这是我的密码: Dim counter As Integer = 0 Dim startcount As Boolean = False Dim

我以前发布过类似的问题,但即使有回复,我仍然无法让代码更快。我现在已经将代码修改为原来的样子,并正在寻找如何加快代码速度的建议

我有一个richtextbox,它有30k行,当for-each循环到达richtextbox的某一行(包含30k行)时,我需要替换一块文本。(如果在此代码中未声明变量,则表示它们是全局变量)

这是我的密码:

Dim counter As Integer = 0
        Dim startcount As Boolean = False
        Dim holdstring As String = ""


        Dim completertb4 As New StringBuilder("")
        Dim completertb4one As New StringBuilder("")
        MsgBox(newrtb.Lines.Count,, "")
        Dim counteroflines As Integer = 1
        For Each line As String In newrtb.Lines

            'MsgBox(counteroflines & "----" & holdstring,, "")

            If line.Contains(richtextboxl0) Then
                startcount = True
                holdstring = vbNewLine & richtextbox3text

            ElseIf startcount = True Then
                If counter = temptextbox3count Then
                    startcount = False
                Else
                    counter += 1
                End If

            ElseIf completertb4.ToString = "" Then
                holdstring = line
            Else
                holdstring = line

            End If

            If counteroflines >= 1 And counteroflines <= 10000 Then

                completertb4.Append(vbNewLine & holdstring & "----" & counteroflines)
            Else

                completertb4one.Append(vbNewLine & holdstring & "----" & counteroflines)
            End If

            counteroflines += 1
        Next
Dim计数器为整数=0
Dim startcount为布尔值=False
Dim holdstring As String=“”
Dim completertb4作为新的StringBuilder(“”)
Dim COMPLETTB4ONE作为新的StringBuilder(“”)
MsgBox(newrtb.Lines.Count,,“”)
整数为1的线的尺寸计数器
在newrtb.Lines中将每行作为字符串
'MsgBox(counterofline&“----”和holdstring,,“”)
如果line.Contains(richtextboxl0)则
startcount=True
holdstring=vbNewLine&richtextbox3text
ElseIf startcount=则为真
如果计数器=ExtExtBox3Count,则
startcount=False
其他的
计数器+=1
如果结束
ElseIf completertb4.ToString=”“然后
holdstring=行
其他的
holdstring=行
如果结束

如果counteroflines>=1且counteroflines,我将代码从08:00秒缩减到00:01秒。从8秒到不到一秒

            Dim counter As Integer = 0
        Dim countertrue As Integer = 0
        Dim countintertal As Integer = 0


        Dim newrtbstrarray As String() = newrtb.Lines
        Dim rtb3array As String() = richtextbox3text.Lines

        For Each line As String In newrtbstrarray

            If line.Contains(richtextboxl0) Then
                countertrue = counter
                For Each element As String In rtb3array
                    newrtbstrarray(countertrue) = rtb3array(countintertal)
                    countertrue += 1
                    countintertal += 1
                Next

            End If

            counter += 1
        Next

你能不能举例说明或提供一些样本数据?我解决了我的问题,谢谢!