Сохранение данных полученных в Regex.Matches - C#

Узнай цену своей работы

Формулировка задачи:

Стоит задача парсинга многострочного файла .txt (объемом 100-200 mb). Для парсера использую регулярное выражение, но по итогам процесса, при попытки получения количества элементов (.Count) и/или отправки результатов в коллекцию, компилятор выдает ошибку: An unhandled exception of type 'System.OutOfMemoryException' occurred in System.dll (до этого лавинообразно увеличивается потребление ОЗУ).
Листинг программы
  1. static void Main(string[] args)
  2. {
  3. List<Data> myData = new List<Data>();
  4. string fileName = File.ReadAllText("j:\\task01\\TextFile.txt");
  5. var matches = Regex.Matches(fileName, @"([A-Za-z]+)", RegexOptions.IgnoreCase);
  6. int x = matches.Count;
  7. foreach (Match m in matches)
  8. myData.Add(new Data(m.Value));
  9. Console.ReadKey();
  10. }
подскажите плз что я делаю не так

Решение задачи: «Сохранение данных полученных в Regex.Matches»

textual
Листинг программы
  1.             var dict = new Dictionary<string, int>();
  2.             string line;
  3.             MatchCollection matches;
  4.             string key;
  5.             Regex reg = new Regex(@"[a-z]+");
  6.             using(var sr = new StreamReader(@"c:\c#\1.txt",Encoding.Default))
  7.                 while(!sr.EndOfStream)
  8.                 {
  9.                     line = sr.ReadLine().ToLower();
  10.                     matches = reg.Matches(line);
  11.                     foreach(Match m in matches)
  12.                     {
  13.                         key = m.ToString();
  14.                         if(!dict.ContainsKey(key)) dict.Add(key, 1);
  15.                         else dict[key]++;
  16.                     }
  17.                 }
  18.             foreach(var item in dict)
  19.             {
  20.                 Console.WriteLine(item.Key + " = " + item.Value);
  21.             }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут