如果第一个字段小于0,有没有办法映射到第二个字段?
例如,如果要映射包含foo
列和bar
列的csv文件:
Map(m => m.Price).Name("foo");
如果列foo
等于0,我们是否可以将Price
映射到bar
列的值。
答案 0 :(得分:3)
您必须手动转换列,如下所示。
Map(x => x.Price)
.Name("foo")
.ConvertUsing(row =>
{
var fooValue = row.GetField<decimal>("foo");
if (fooValue == 0m)
{
return row.GetField<decimal>("bar");
}
return fooValue;
});
那就是说,我不认为你应该使用CsvHelper来进行条件映射。理想情况下,您可以为CSV模型和要映射到的其他模型绘制映射。然后使用代码将CSV模型映射到其他模型。