阵列替换不起作用

时间:2014-12-22 13:36:41

标签: .net arrays vb.net string generic-list

我有这样的数组列表:

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试试,但我只是减少了值...... 显然不是替换是成功的,阵列保持不变,出了什么问题?

1 个答案:

答案 0 :(得分:1)

Strings are immutable意味着在字符串上调用Replace并不会更新有问题的字符串,它会返回一个新字符串。所以这一行:

valori(x).Replace(prop, "14")

当它返回被替换的字符串时,不会替换该字符串。您需要将其分配回原始字符串:

valori(x) = valori(x).Replace(prop, "14")