Using CsvHelper v29, when creating a ClassMap, is it possible to modify a string before it is loaded into the map?
For example, in the code below, m.EmployeeNumber
is of type string?
and it may have a value of "001234"
:
public sealed class CsvMap : ClassMap<Employee>
{
public CsvMap()
{
_ = Map(m => m.EmployeeNumber);
...
}
}
I'm trying to convert its value using Map()
to "=001234"
.
I have tried:
_ = Map(m => m.EmployeeNumber?.Prepend('='));
But this will not work because an expression tree lambda cannot have the null propagating operator.
CodePudding user response:
The bigger issue is that Map
is expecting the expression to return a class member, for example EmployeeNumber
. You would need to use Convert
to actually change the output.
_ = Map(m => m.EmployeeNumber).Convert(args => "=" args.Value.EmployeeNumber);