0
我試圖替換文件中的所有雙引號,但是當我嘗試更新字符串數組時,我只是再次獲取原始行而不是清理後的字符串。 (ReplaceQuotes函數中的布爾值僅用於測試,當有一個「在線」時它們會恢復正常)如果我查看cleanLine字符串,引號已被刪除,但是當我返回fileContent數組時,它看起來就是想當初用引號。字符串數組替換不更新原始字符串
Private Sub CleanFile(currentFileInfo As FileInfo)
Dim fullName As String = currentFileInfo.FullName
Dim fileContent As String() = GetFileContent(currentFileInfo.FullName)
Dim cleanFileContent As String() = ReplaceQuotes(fileContent)
End Sub
Private Function GetFileContent(fileName As String) As String()
Return System.IO.File.ReadAllLines(fileName)
End Function
Private Function ReplaceQuotes(fileContent As String())
For Each line As String In fileContent
Dim cleanLine As String
Dim quoteTest As Boolean
quoteTest = line.Contains("""")
Dim quoteTest2 As Boolean = line.Contains(ControlChars.Quote)
cleanLine = line.Replace(ControlChars.Quote, "")
line = cleanLine
Next
Return fileContent
End Function
字符串是不可變的,你必須重新分配它在你的數組。 –
爲初學者打開Option Strict,你的函數只是返回它傳遞的東西而不是處理後的數據; 'return fileContent'就是傳遞給它的東西。 – Plutonix
@ DanielA.White:這與字符串的不變性無關,而與變量和它們引用的對象之間的差異有關。 'line'只是一個引用數組中字符串的局部變量。通過重新爲該變量分配一個新字符串,您不會更改該數組。 –