Я использую какой-то неоптимальный код, написанный мной... :-|
У меня есть следующий код:
string fmtLine = "";
string[] splitedFmtLine;
int counterFMTlines = 0;
foreach (string fmtF in fmtFiles)
{
using (StreamReader sr = new StreamReader(fmtF))
{
while ((fmtLine = sr.ReadLine()) != null)
{
Console.WriteLine(counterFMTlines++);
foreach (L3Message message in rez)
{
splitedFmtLine = Regex.Split(fmtLine, "\t");
if (message.Time == splitedFmtLine[0])
{
message.ScramblingCode = splitedFmtLine[7];
}
}
}
}
}
Я тестировал этот код, когда список был пуст и был только один файл (с разделителями табуляции, 280000 строк), и даже тогда требовалось время жизни (1 минута), чтобы просмотреть все 280000 строк моего файла. Это означает, что выполнение пропустило цикл foreach, где находится мой список myObjs.
Не могу понять, почему так долго?
Например, я заполнял свой список myObjs (древовидная иерархия) другим текстовым файлом (исходный файл), но больше, чем этот разделитель табуляции (разделитель табуляции: 16 МБ, исходный файл: 36 МБ), и это заняло всего секунду по сравнению с этой 1 минутой.