VB.net Alternative ReDim Preserve
mein Programm funktioniert, aber ich denke, es leidet die performance-Probleme, es verbraucht bis zu 40% meiner CPU-Auslastung, während es Schleife das array. normalerweise meine Programme würden nur konsumieren unter 5% der CPU-Auslastung, ich denke ReDim Preserve ist die Ursache HIERFÜR, wie ich bin, looping rund 100.000+ Zeilen. hier ist mein code.
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()
Gibt es keine alternative Möglichkeit der überführung der Werte in ein array abgesehen von ReDim Preserve?
Vielen Dank im Voraus, ich bin wirklich gefangen in diesem problem jetzt.
Hier ist nun meine aktuelle code-Liste.
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()
Benötigte ich noch die funcionalities von einem array, so dass ich erstellt ein array, und legte den Inhalt der Liste in es.
- In einer der Antworten wurde vorgeschlagen, dass Sie eine Liste, die ich Stimme mit. Wenn Sie aus irgendeinem Grund nicht tun können, lassen Sie es uns wissen.
- ich habe Probleme wo zu beginnen in der Umwandlung Liste. ein Start-code könnte helfen
- Gibt es einen Grund, nicht zu verwenden
File.ReadAllLines
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie eine
List(Of String)
, die Raum lassen für die Zukunft-Elemente statt Größenänderung jeder Zeit.Als SLaks sagte, am besten sollte eine Liste:
Ist scheint, dass Sie das Lesen einer Datei, eine andere Möglichkeit wäre die Verwendung der ReadAllLines Methode.