Вы получаете эту ошибку, потому что, когда вы делаете следующий вызов:
ChangeDigit(4, 0);
Значение ID
не может быть меньше 3 символов в длину.
Например, скажем ID = "AB"
, когда вы затем позвоните Item.Remove(Place - 1, Item.Length - Place + 1)
в рамках вызова на ChangeDigit(4, 0)
, он, по сути, будет делать это:
int startIndex = 4 - 1 // 3
int count = 2 - 4 + 1 // -1
"AB".Remove(startIndex, count)
Как вы можете видеть здесь,аргумент count
равен -1
, что приведет к исключению, которое вы получаете Count cannot be less than zero
.
Вам нужно запустить свою программу в отладчике и посмотреть, какое значение идентификатора находится навремя исключение бросается.Возможно, идентификатор - пустая строка, или вы не ожидаете его из-за ошибки где-то еще в вашем коде?