Вот как бы я это сделал:
public string AddOne (string text)
{
int parsed = int.Parse(text);
string formatString = "{0:D" + text.Length + "}";
return string.Format(formatString, parsed + 1);
}
Поместив длину входного текста в строку формата, вы можете убедиться, что ваша результирующая строка имеет ту же длину, что и введенная вами.
В зависимости от ваших потребностей, вам может потребоваться обработка исключений вокруг int.Parse. Я подумал, что я позволю исключению всплыть как исключение (ArgumentException или ArgumentNullException) от int.Parse будет теми же исключениями, которые я в любом случае вызову в моем методе.