Vb.net 删除列表中每个元素上的字符

Vb.net 删除列表中每个元素上的字符,vb.net,Vb.net,我有一个清单如下。该列表包含n元素。我想清除列表中的每个元素,删除“[”或“]”字符 List作为新的System.Collections.Generic.List(字符串)({[1_1,2,3],“”,“]”) 对于i As Integer=0到bracList.Count-1 bracList(i)=bracList(i)。替换(“[”,”)。替换(“]”,“”) 接下来我 上面的代码适用于小列表,但如果我有一个大列表,则需要花费太长的时间。如前所述,使用正则表达式将显著提高性能,特别是对

我有一个清单如下。该列表包含
n
元素。我想清除列表中的每个元素,删除
“[”
“]”
字符

List作为新的System.Collections.Generic.List(字符串)({[1_1,2,3],“”,“]”)
对于i As Integer=0到bracList.Count-1
bracList(i)=bracList(i)。替换(“[”,”)。替换(“]”,“”)
接下来我

上面的代码适用于小列表,但如果我有一个大列表,则需要花费太长的时间。

如前所述,使用正则表达式将显著提高性能,特别是对于大列表。您还可以使用Parallel.Foreach。我不知道在这种情况下会快多少,但理论上应该快一些:

Dim bracList As New System.Collections.Generic.List(Of String)({"[1_1,2,3", "", "]"})
Threading.Tasks.Parallel.ForEach(bracList, Sub(item)
                                                   item.Replace("[", "").Replace("]", "")
                                               End Sub)

尝试使用除泛型列表之外的字典,如果它对speedo有帮助,请告诉我,字典比列表或数组快得多。。testedYou可能会,也可能不会获得小的速度提升,但除此之外,没有太多的事情要做。是列表中字符串的大小还是列表本身的大小?您可以清理列表的源吗?GSerg的建议可以添加
RegexOptions.Compiled
,例如,如果您有一个大文本作为源,并在该源上搜索匹配项。如果您无法在源上执行更改,则可以在将项添加到列表时执行,在解析/重建字符串时使用StringBuilder作为临时容器。