'Why doesn't this work?
Dim myStrings As String() = New String() {string1, string2, string3,}
For Each s As String In myStrings
If String.IsNullOrEmpty(s) Then
s = ""
End If
s = "-" & s.Trim() & "-"
Next
Если string1
содержит "foo"
, я предполагаю, что string1
содержит "-foo-"
после выполнения цикла. Как я могу сделать эту работу?
Я предполагаю, что этот код делает копии моих строк и модифицирует их. Как я могу изменить мои строки в цикле?
Обновление Я изменил код для использования индексов массива:
' It still doesn't work.
Dim myStrings As String() = New String() {string1, string2, string3}
For i As Integer = 0 To myStrings.Count() - 1
If String.IsNullOrEmpty(myStringss(i)) Then
myStringss(i) = ""
End If
myStrings(i) = "-" & myStrings(i) & "-"
Next
Результат этого кода, относящийся конкретно к массиву и индексу для каждого элемента, модифицирует массив, но мои строки по-прежнему имеют те же старые значения. По-видимому, инициализация такого массива просто копирует мои значения в новый массив. Как я могу изменить мои исходные значения в цикле?
Акцент: Массив только для циклических целей. Мне нужно изменить string1
, string2
и string3
аналогичным образом, но как только этот цикл закончится, массив больше не будет использоваться. О, и мой реальный код содержит более 3 строк.
Позвольте мне просто сказать, что если бы я использовал язык с большим количеством указателей и ссылок, я думаю, я бы просто имел массив указателей, которые указывают на string1
, string2, and
string3`. Кажется излишним копировать эти строки в массив.