Группировать строки данных при итерации - PullRequest
0 голосов
/ 02 февраля 2011

Я разрабатываю приложение для анализа файла данных.Поскольку это большой файл, его нельзя загружать в память.Поэтому я перебираю файл данных.Но файл данных структурирован как

1. master data line1
2. master data line2
3. detail data line2-1
4. detail data line2-2
5. master data line3
6. master data line4
7. detail data line4-1
8. detail data line4-2
9. detail data line4-3
10.  ......

Мне нужно сгруппировать связанные строки данных, а затем отправить одну транзакцию в базу данных.У кого-нибудь была подобная проблема раньше?Есть способ лучше?

Спасибо,

Ответы [ 2 ]

0 голосов
/ 31 июля 2017

Используйте следующий процесс для связки связанных записей вместе в группе. Он также не загружает весь файл в память сразу.

List<string> collection = new List<string>();

foreach( var line in File.ReadLines("file.txt") )
{
     if( line.StartsWith("master"))
     {
        if( collection.Count > 0 )
        {
             WriteRecords(collection);
        }
        collection.Clear();
     }
     collection.Add(line);
}
0 голосов
/ 02 февраля 2011

заглянуть в следующую строку; если это мастер, продолжайте как обычно, если это подробно, добавьте строку и загляните в следующую строку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...