При чтении кода csvhelper выясняется, что методы WriteHeader внутренне используют WriteField и устанавливают флаги, указывающие, что заголовок был написан.WriteField подчиняется текущим сконфигурированным настройкам относительно того, должно ли оно заключать в кавычки поле или нет, и заполняет кавычки в данных поля, передаваемых во время его вызова, даже если запись в файл не обязательно происходит в это время
Как таковой, я рекомендую вам сделать что-то вроде этого:
var cw = new CsvWriter(yourTextWriterOrWhatever);
cw.Configuration.QuoteNoFields = true;
cw.WriteHeader<YourClassNameHere>();
cw.NextRecord(); // without this first row is on same line as header
cw.Configuration.QuoteAllFields = true; //or set QuoteNoFields = false
cw.WriteRecords(yourCollectionOfYourClass);
Просто чтобы быть ясно;Вы не можете вставить и перейти к приведенному выше коду, вы должны отредактировать его, чтобы он действовал в соответствии с вашим контекстом - везде, где вы встречаете, слово «Твой» нуждается в корректировке.
Важная часть, которую я намереваюсь описать, заключается в том, что вы должны
- отключить кавычки в конфигурации,
- записать заголовки,
- включить цитирование (либо цитируя все, либо отключив квотенполя и позволяя csvhelper решить, цитировать или нет)
- записать записи данных