我的程序确实可以工作,但我认为它存在性能问题,它在循环阵列时消耗了我总 CPU 使用率的 40%。通常我的程序只会消耗不到 5% 的 CPU 使用率,我认为 ReDim Preserve 导致了这种情况,因为我循环了大约 100,000 多行。这是我的代码。
Dim sArray As String()
Dim fStream As New System.IO.FileStream("messages.txt", IO.FileMode.Open)
Dim sReader As New System.IO.StreamReader(fStream)
Dim Index As Integer = 0
Do While sReader.Peek >= 0
ReDim Preserve sArray(Index)
sArray(Index) = sReader.ReadLine
Index += 1
Loop
fStream.Close()
sReader.Close()
除了 ReDim Preserve 之外,还有其他方法可以将值放入数组中吗?在此先感谢,我现在真的陷入了这个问题。
这是我使用 List 更新的代码。
Dim sArray As String()
Dim sList As New List(Of String)
Dim fStream As New System.IO.FileStream("messages.txt", IO.FileMode.Open)
Dim sReader As New System.IO.StreamReader(fStream)
Dim Index As Integer = 0
Do While sReader.Peek >= 0
sList.Add(sReader.ReadLine)
Loop
sArray = sList.ToArray
fStream.Close()
sReader.Close()
我仍然需要数组的功能,所以我创建了一个数组并将列表的内容放入其中。