Korrekt. Durch den &-Operator (bzw. &=-Operator) kann der Inhalt
von zwei Zeichenketten-Variablen zusammengefasst werden.
Allerdings empfiehlt sich diese Operation nur
- wenn man "wenige" Verknüpfungen durchführt,
- wenn die verknüpften Zeichenketten relativ kurz sind.
Das liegt daran, daß der Inhalt von String-Variablen bei
VB.Net (Framework) "unveränderlich" ist, d.h. es müssen bei jeder
String-Operation die vorhandenen Zeichenfolgen(teile) kopiert werden.
(Ein direktes Anhängen im Speicher - wie bei VB6 - ist nicht möglich.)
Aus diesem Grund gibt es die Klasse "System.Text.Stringbuilder".
Sie ermöglicht es, Zeichenfolgen effizient wie eine Zeichen-Liste zu
verwalten (Methoden für Anhängen, Einfügen, Ausschneiden, Ersetzen).
Im Beispiel werden die numerischen Teile der Zeichenfolgen
durch "String.Format" formatiert.
'Ausgabe der Stundenbezogenen Dateilisten
Dim output As New List(Of String)
Dim outline As New System.Text.StringBuilder 'Ausgabezeile bauen
output.Add("Pfad: " & di.FullName)
output.Add("Datum: " & dt.Date.ToString("dd.MM.yy"))
For i As Integer = 0 To 23
outline.Clear() 'Ausgabezeile leeren
'Uhrzeit-Bereich formatiert ausgeben
outline.Append(String.Format("{0,2} bis {1,2} Uhr: ", i, i + 1))
'Anzahl der Dateien anhängen
Select Case hourlist(i).Count
Case 0
outline.Append("Keine Dateien")
Case 1
outline.Append(" eine Datei")
Case Else
outline.Append(String.Format("{0,5} Dateien", hourlist(i).Count))
End Select
'aktuelle Ausgabezeile in einen String wandeln
'und in der Ausgabezeilen-Liste als neue Zeile anhängen
output.Add(outline.ToString)
Next i Und hier noch die &=-Variante:
'Ausgabe der Stundenbezogenen Dateilisten
Dim output As New List(Of String)
output.Add("Pfad: " & di.FullName)
output.Add("Datum: " & dt.Date.ToString("dd.MM.yy"))
For i As Integer = 0 To 23
output.Add(String.Format("{0,2} bis {1,2} Uhr: ", i, i + 1))
'Die aktuelle Zeile steht am Index: output.count-1
'Dort wird angehängt
Select Case hourlist(i).Count
Case 0
output(output.Count - 1) &= "Keine Dateien"
Case 1
output(output.Count - 1) &= " eine Datei"
Case Else
output(output.Count - 1) &= _
String.Format("{0,5} Dateien", hourlist(i).Count)
End Select
Next i
Beitrag wurde zuletzt am 14.04.16 um 06:23:15 editiert. |