You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET中Regex.Replace生效但数组未更新问题求助

问题原因与解决方案

错误根源

你遇到的问题和.NET版本切换无关,是VB.NET基础语法特性导致的:

  • 字符串是不可变类型,且For Each循环中的变量l是数组元素的副本,修改这个副本不会同步到原数组中。调试时看到l被更新,只是副本的值变了,原数组的元素完全没被修改。

解决方案1:使用索引式For循环

直接通过数组索引访问元素,修改原数组的对应位置:

Private Function RemoveHTMLTags(content As String) As String()
    Dim lines() = content.Split(vbLf)
    For i = 0 To lines.Length - 1
        lines(i) = Regex.Replace(lines(i), htmlRegexG, String.Empty)
        ' 后续修改直接用 lines(i) = ...
    Next
    Return lines
End Function

解决方案2:使用LINQ生成新数组

用LINQ的Select方法直接处理每个元素并生成新数组,写法更简洁:

Private Function RemoveHTMLTags(content As String) As String()
    Return content.Split(vbLf).Select(Function(l)
        Dim processedLine = Regex.Replace(l, htmlRegexG, String.Empty)
        ' 后续修改直接对 processedLine 操作
        Return processedLine
    End Function).ToArray()
End Function

内容的提问来源于stack exchange,提问作者Mick

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 10:43:11