我试图使用替换但没有成功的计数器。
int ObjN = 0;
while (editor.Rtf.Contains("CreateObject") == true)
{
editor.Rtf = editor.Rtf.Replace("CreateObject", "Object" + ObjN++);
}
输出是:
Object0
Object0
Object0
我期待
Object0
Object1
Object2
代替。我怎样才能得到那个输出?
答案 0 :(得分:1)
问题是你的replace语句将替换" CreateObject"的所有实例。在字符串中,它在替换第一个实例后不会停止。摆脱替换行,而是使用.IndexOf搜索第一个实例的索引,然后手动替换它。
答案 1 :(得分:1)
在调用"Object" + ObjN++
方法之前,将对Replace
表达式进行一次计算,而不是每次替换。循环没有帮助,因为Replace
方法将替换所有实例,而不仅仅是第一个。
如果使用Regex.Replace
,您可以指定一个函数来创建值:
int cnt = 0;
editor.Rtf = Regex.Replace(editor.Rtf, "CreateObject", m => "Object" + (cnt++));