using System.Collections.Generic;
using System.Globalization;
public static void Main()
@"Number,Date,Account,Amount,Subcategory,Memo
,09/05/2017,XXX XXXXXX,-29.00,FT , [Sample string]
,09/05/2017,XXX XXXXXX,-20.00,FT ,[Sample string]
,08/05/2017,XXX XXXXXX,-6.30,PAYMENT,[Sample string]";
List<Transaction> result = new List<Transaction>();
using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(csvData)))
using (StreamReader sr = new StreamReader(ms))
var csv = new CsvReader(sr);
csv.Configuration.CultureInfo = CultureInfo.GetCultureInfo("en-GB");
result = csv.GetRecords<Transaction>().ToList();
foreach (Transaction t in result)
Console.WriteLine(string.Format("{0:dd-MMM-yyyy} {1} {2,6} {3,-7} {4}",
t.Date, t.Account, t.Amount, t.Subcategory, t.Memo));
public string Number { get; set; }
public DateTime Date { get; set; }
public string Account { get; set; }
public decimal Amount { get; set; }
public string Subcategory { get; set; }
public string Memo { get; set; }