替换字符串末尾的迭代器

时间:2011-10-14 15:28:49

标签: c# string

对于文件函数,我在迭代器中添加了文件的新名称。

名称将如下所示:

  • 我的名字
  • 我的名字(1)
  • 我的名字(2)
  • ...
  • 我的名字(10)

为了找到下一个“可用”号码,我正在使用while循环:

while (Stuff.FindNameByText(text) != null)
{
    text = string.Format("{0} ({1})", text, i.ToString());
    i++;
}
File.SetNewName(text)

但是这段代码当然给了我以下输出:

  • 我的名字
  • 我的名字(1)
  • 我的名字(1)(2)
  • ...

如何首先添加字符串结尾的迭代器(如果不存在) - 否则替换现有字符串。我做了以下,但它会以无限循环结束......

while (Stuff.FindNameByText(text) != null)
{
    Regex regex = new Regex(string.Format("\\{0}.*?\\{1}", "(", ")"));
    text = regex.IsMatch(text, i.ToString());
    File.SetNewName(text)
}

也许有人可以帮我一点。如果最后的迭代器不存在 - 添加一个,否则用新的数字替换现有的。

1 个答案:

答案 0 :(得分:4)

var orig = text;

while (Stuff.FindNameByText(text) != null)
{
    text = string.Format("{0} ({1})", orig, i.ToString());
    i++;
}
File.SetNewName(text)