Поиск большого текстового файла ⇐ C#
-
Гость
Поиск большого текстового файла
Я пытаюсь оптимизировать поиск строки в большом текстовом файле (300-600 МБ). Используя мой текущий метод, это занимает слишком много времени.
В настоящее время я использую IndexOf для поиска строки, но для построения индекса для каждой строки со строкой требуется слишком много времени (20 секунд).
Как оптимизировать скорость поиска? Я пробовал Contains(), но это тоже медленно. Какие-либо предложения? Я думал о совпадении регулярных выражений, но не вижу, чтобы это значительно увеличило скорость. Возможно, моя логика поиска ошибочна
пример
while ((line = myStream.ReadLine()) != null) { if (line.IndexOf(CompareString, StringComparison.OrdinalIgnoreCase) >= 0) { LineIndex.Add(ТекущаяПозиция); ЛинесКаунтед += 1; } }
Я пытаюсь оптимизировать поиск строки в большом текстовом файле (300-600 МБ). Используя мой текущий метод, это занимает слишком много времени.
В настоящее время я использую IndexOf для поиска строки, но для построения индекса для каждой строки со строкой требуется слишком много времени (20 секунд).
Как оптимизировать скорость поиска? Я пробовал Contains(), но это тоже медленно. Какие-либо предложения? Я думал о совпадении регулярных выражений, но не вижу, чтобы это значительно увеличило скорость. Возможно, моя логика поиска ошибочна
пример
while ((line = myStream.ReadLine()) != null) { if (line.IndexOf(CompareString, StringComparison.OrdinalIgnoreCase) >= 0) { LineIndex.Add(ТекущаяПозиция); ЛинесКаунтед += 1; } }
Мобильная версия