CsvHelper
CsvHelper copied to clipboard
Parsing of header fields doesn't trim leading and trailing spaces.
Describe the bug When a CSV header is parsed the header fields aren't trimmed of leading and trailing spaces causing failure using the Name attribute.
To Reproduce My CSV header is as follows "DATE,TRANSACTION ID,DESCRIPTION,QUANTITY,SYMBOL,PRICE,COMMISSION,AMOUNT,REG FEE,SHORT-TERM RDM FEE,FUND REDEMPTION FEE, DEFERRED SALES CHARGE"
Note that the last header field has a leading space. This fails: [Name("DEFERRED SALES CHARGE")] This succeeds: [Name(" DEFERRED SALES CHARGE")]
Expected behavior I expected that the CSV header of "..., DEFERRED SALES CHARGE" would become "DEFERRED SALES CHARGE"
Use CsvConfiguration.TrimOptions
e.g.
void Main()
{
string csvString = """
FUND REDEMPTION FEE, DEFERRED SALES CHARGE
value1,value2
""";
CsvConfiguration config = new(CultureInfo.InvariantCulture)
{
TrimOptions = TrimOptions.Trim
};
using StringReader sr = new(csvString);
using CsvReader csv = new(sr, config);
csv.GetRecords<MyClass>().Dump();
}
class MyClass
{
[Name("FUND REDEMPTION FEE")]
public string FundRedemptionFee { get; set; }
[Name("DEFERRED SALES CHARGE")]
public string DeferredSalesCharge { get; set; }
}