csv 通过foreach语句更改数组的值VB.net

raogr8fs  于 2023-06-27  发布在  .NET
关注(0)|答案(2)|浏览(92)

我做了一个程序,自动分离的csv文件。我们通过读取csv,然后使用split命令将“行”分配给一个数组。之后,我们遍历数组中的每个“单元”,并在前面放置一个=,因为这会导致前导零不会丢失。这是密码

arLine = line.Split(replace)

        For Each cell As String In arLine
            cell = cell.Replace(",", "")
            cell = String.Format(cellFormat, cell)
        Next

arLine是数组,replace是分隔符,在本例中是一个管道,无关紧要。
当它通过时,arLine是正确的,但每个单元格中的值没有改变,有什么想法吗?更新到www.example.com并需要指导VB.net and need direction

wtlkbnrh

wtlkbnrh1#

试试这个

arLine = line.Split(replace)          
For x as Integer = 0 To arLine.Length - 1             
    arLine(x) = arLine(x).Replace(",", "")             
    arLine(x) = String.Format(cellFormat, arLine(x))         
Next

您正在使用For Each循环并试图修改迭代器返回的值,但这为单元格var创建了一个新字符串,因此您没有引用原始数组。使用传统的For循环可以直接更新arLine数组中的值。

zqdjd7g9

zqdjd7g92#

.NET中的字符串是immutable。当你修改一个字符串时,你实际上创建了一个全新的字符串。
因此,cell不再引用原始数组元素。相反,尝试for循环而不是foreach循环,并将修改后的值赋回arLine(i)
使用for循环而不是foreach,这样您就可以方便地索引到集合中。

相关问题