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;
нет смысла сдвигать только на один символ. И не проще ли было найти все вхождения регуляркой? Это было бы две строки текста.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы