CsvHelper is my preferred dependency for handling csv files, in C#.

Example CsvHelper usage:

Use dynamic to instantiate a record object for each row, then use RouteValueDictionary to assist with accessing each row’s columns.