Сохранение данных полученных в Regex.Matches - C#
Формулировка задачи:
Стоит задача парсинга многострочного файла .txt (объемом 100-200 mb).
Для парсера использую регулярное выражение, но по итогам процесса, при попытки получения количества элементов (.Count) и/или отправки результатов в коллекцию, компилятор выдает ошибку: An unhandled exception of type 'System.OutOfMemoryException' occurred in System.dll (до этого лавинообразно увеличивается потребление ОЗУ).
подскажите плз что я делаю не так
static void Main(string[] args)
{
List<Data> myData = new List<Data>();
string fileName = File.ReadAllText("j:\\task01\\TextFile.txt");
var matches = Regex.Matches(fileName, @"([A-Za-z]+)", RegexOptions.IgnoreCase);
int x = matches.Count;
foreach (Match m in matches)
myData.Add(new Data(m.Value));
Console.ReadKey();
}Решение задачи: «Сохранение данных полученных в Regex.Matches»
textual
Листинг программы
var dict = new Dictionary<string, int>();
string line;
MatchCollection matches;
string key;
Regex reg = new Regex(@"[a-z]+");
using(var sr = new StreamReader(@"c:\c#\1.txt",Encoding.Default))
while(!sr.EndOfStream)
{
line = sr.ReadLine().ToLower();
matches = reg.Matches(line);
foreach(Match m in matches)
{
key = m.ToString();
if(!dict.ContainsKey(key)) dict.Add(key, 1);
else dict[key]++;
}
}
foreach(var item in dict)
{
Console.WriteLine(item.Key + " = " + item.Value);
}