using System.Globalization;
using RecordParser.Builders.Reader;
using RecordParser.Extensions;
using TextReader textReader = new StringReader(fileContent);
var headerRow = textReader.ReadLine();
var headerFields = headerRow.Split(",");
Console.WriteLine(headerRow);
if (headerFields[0] != "Id" || headerFields[1] != "Reference" || headerFields[2] != "Amount")
throw new Exception ("some header is different of expected");
var builder = new VariableLengthReaderBuilder<Record>()
.Map(x => x.Reference, 1)
var reader = builder.Build(",", CultureInfo.InvariantCulture);
var readerOptions = new VariableLengthReaderOptions
ContainsQuotedFields = false,
ParallelismOptions = new()
EnsureOriginalOrdering = true,
var records = textReader.ReadRecords(reader, readerOptions);
foreach(var r in records)
public record class Record(int Id, string Reference, decimal Amount);