[英]Replace string values in list
我有一个字符串集合,其中包含诸如“goalXXvalue,goalXXLength,TestXX”之类的值。 这是一个 List(of String) 我以为我可以遍历每个项目并替换我用下面的方法尝试过的 XX 值,但这些值不会改变。 我哪里错了? 谢谢
metricList.ForEach(Function(n) n.Replace("XX", "1"))
你在这里有几个问题:
.Replace
你会返回一个新的字符串。 调用n.Replace
不会修改n
。n
不会影响列表中的值。由于您似乎正在更改列表中的每个字符串,因此似乎没有必要尝试就地修改集合。 因此,简洁的解决方案是使用 Linq 来创建一个新列表:
var newList = metricList.Select(s => s.Replace("XX", "1")).ToList();
问题:您没有对已替换的字符串执行任何操作。
你可以很容易地做到这一点,使用一个简单的循环:
C#
for(int i = 0; i < metricList.Count; i++)
{
metricList[i] = metricList[i].Replace("XX", "1");
}
网络
For i As Integer = 0 To metricList.Count - 1
metricList(i) = metricList(i).Replace("XX", "1")
Next
代码遍历metricList
所有字符串并将XX
替换为1
,然后将值存储回列表中的正确位置,您在代码中没有做什么...
或者使用 Linq:
C#
var newList = metricList.Select(x => x.Replace("XX", "1")).ToList();
网络
Dim newList = metricList.Select(Function(x) x.Replace("XX", "1")).ToList()
不要忘记在类的顶部添加对 linq 的引用:
C#
using System.Linq;
网络
Imports System.Linq
您需要分配 String.Replace 方法的结果。 所以你的 func 应该返回一些东西或者使用而不是 foreach select
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.