странная строка.IndexOf behavior

Я написал следующий фрагмент, чтобы избавиться от лишних пробелов в блоках текста

int index = text.IndexOf("  ");
while (index > 0)
{
    text = text.Replace("  ", " ");
    index = text.IndexOf("  ");
}

В целом это работает нормально, хотя и довольно примитивно и, возможно, неэффективно.

Проблема

Когда текст содержит "-" по какой-то причудливой причине, indexOf возвращает совпадение! Функция Replace ничего не удаляет, а затем застревает в бесконечном цикле.

Есть идеи, что происходит со строкой.IndexOf?

5
задан Andrew Harry 4 February 2011 в 00:05
поделиться