'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'. Это кажется избыточным для копирования этих строк в массив.