Заменить итератор в конце строки - PullRequest
2 голосов
/ 14 октября 2011

Для файловой функции я добавил итератор для нового имени файла.

Имена будут выглядеть так:

  • Мое имя
  • МойИмя (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 Ответ

4 голосов
/ 14 октября 2011
var orig = text;

while (Stuff.FindNameByText(text) != null)
{
    text = string.Format("{0} ({1})", orig, i.ToString());
    i++;
}
File.SetNewName(text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...