private IEnumerable<Record> ReadRecords(string fileName)
{
var stringBuilder = new StringBuilder();
using (var reader = new StreamReader(fileName))
{
ReadOnlyCollection<string> header;
if (reader.Peek() >= 0)
{
var first = this.ParseLine(reader.ReadLine(), stringBuilder).ToArray();
header = new ReadOnlyCollection<string>(first);
}
else
{
yield break;
}
for (var i = 0; i < this._numberRecordsToSkip && reader.Peek() >= 0; i++)
{
reader.ReadLine();
}
while (reader.Peek() >= 0)
{
var items = this.ParseLine(reader.ReadLine(), stringBuilder).ToArray();
yield return new Record(header, items);
}
}
}