我有这样的数组列表:
Dim valori As New List(Of String)
我会替换数组的最后一个单元格,所以我创建了这段代码:
For x As Integer = 0 To valori.Count - 1
If valori.Count <> 0 Then
item = valori(x).Split(",")
Dim prop = item(4)
Dim decimalVal = System.Convert.ToDecimal(prop)
If prop <> 0 Then
valori(x).Replace(prop, "14") 'should update the array content
MessageBox.Show(valori(x))
End If
End If
Next x
你怎么看,我的数组以String为特征,所以我第一次拆分数组,得到最后一个单元格(4)。我将此单元格保存在decimalVal变量中,然后将此值转换为十进制。 此时我将decimalVal的值与0(递归函数)进行比较。 我发现自己在一个for循环中用&#34; x&#34;索引,所以我登录到valori(x)索引,然后用14替换prop值,我把14试试,但我只是减少了值...... 显然不是替换是成功的,阵列保持不变,出了什么问题?
答案 0 :(得分:1)
Strings are immutable意味着在字符串上调用Replace
并不会更新有问题的字符串,它会返回一个新字符串。所以这一行:
valori(x).Replace(prop, "14")
当它返回被替换的字符串时,不会替换该字符串。您需要将其分配回原始字符串:
valori(x) = valori(x).Replace(prop, "14")