Мой совет: не создавайте свой собственный ридер CSV-файлов; используйте вместо этого пакет Nuget CsvHelper
CsvHelper может принимать любой структурированный CSV-файл, с любым типом разделителя и со строкой заголовка или без нее.
Если у вашего CSV есть строка заголовка, вы можете сказать помощнику CSV, что столбец с именем «Фамилия» должен быть помещен в свойство «LastName» вашего класса.
Даже если в вашем CSV-файле нет строки заголовка, вы можете сказать, что столбец 7 должен быть сопоставлен с «LastName», а столбец 9 - с «Дата рождения»
Посетите страницу документации для простых примеров