adressmoeistranici
@adressmoeistranici
Делатель

Метод заставляет компьютер обожраться памятью?

public int[] SearchLexem(string findText)
        {
            lenghtText = 1;
            findText = findText.ToLower();
            first = new List<int>();
            i = -2;
            firstCharacter = 0;
            startIndex = 0;
            while (firstCharacter != -1)
            {
                i++;
                if (i > -1)
                {
                    first.Add(firstCharacter);
                }
                firstCharacter = allText.IndexOf(findText, startIndex);
                secondCharacter = (firstCharacter + lenghtText) - 1;
                startIndex = secondCharacter;
            }
            return first.ToArray();
        }

Комп обжирается памятью
ищу все совпадения символа в строке
  • Вопрос задан
  • 197 просмотров
Решения вопроса 1
@kttotto
пофиг на чем писать
Вы бы сказали тогда какой длинны весь текст. Подвисает - он может долго думать, сжирать процессор. Если все таки память, то возможно он не выходит из цикла (кто знает, что у Вас там за текст) и строит список из миллионов результата.

И мне кажется у Вас там ошибка. Возможно lenghtText должен быть равен findText.Lenght. Т.е. после того как Вы нашли позицию вхождения, дальше надо искать с позиции
secondCharacter = (firstCharacter + findText.Lenght) - 1;
нет смысла сдвигать только на один символ. И не проще ли было найти все вхождения регуляркой? Это было бы две строки текста.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы