Try CsvHelper (a library I maintain). It's also available via NuGet.
CsvHelper allows you to read your CSV file directly into your custom class.
var streamReader = // Create a reader to your CSV file.
var csvReader = new CsvReader( streamReader );
List<MyCustomType> myData = csvReader.GetRecords<MyCustomType>();
CsvReader will automatically figure out how to match the property names based on the header row (this is configurable). It uses compiled expression trees instead of reflection, so it's very fast.
It is also very extensible and configurable.