VB.net循环需要8秒,我觉得很慢
我以前发布过类似的问题,但即使有回复,我仍然无法让代码更快。我现在已经将代码修改为原来的样子,并正在寻找如何加快代码速度的建议 我有一个richtextbox,它有30k行,当for-each循环到达richtextbox的某一行(包含30k行)时,我需要替换一块文本。(如果在此代码中未声明变量,则表示它们是全局变量) 这是我的密码: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
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
你能不能举例说明或提供一些样本数据?我解决了我的问题,谢谢!