C# 使用CsvHelper,如果第一列的值等于0,如何映射到第二列
如果第一个字段小于0,是否有方法映射到第二个字段 例如,如果要映射具有列C# 使用CsvHelper,如果第一列的值等于0,如何映射到第二列,c#,asp.net,asp.net-mvc,csv,csvhelper,C#,Asp.net,Asp.net Mvc,Csv,Csvhelper,如果第一个字段小于0,是否有方法映射到第二个字段 例如,如果要映射具有列foo和bar的csv文件: Map(m => m.Price).Name("foo"); 如果列foo等于0,那么我们可以将Price映射到bar列的值 您必须手动转换列,如下所示 Map(x => x.Price) .Name("foo") .ConvertUsing(row => { var fooValue = row.GetField<decimal
foo
和bar
的csv文件:
Map(m => m.Price).Name("foo");
如果列
foo
等于0,那么我们可以将Price
映射到bar
列的值 您必须手动转换列,如下所示
Map(x => x.Price)
.Name("foo")
.ConvertUsing(row =>
{
var fooValue = row.GetField<decimal>("foo");
if (fooValue == 0m)
{
return row.GetField<decimal>("bar");
}
return fooValue;
});
Map(x=>x.Price)
.名称(“foo”)
.ConvertUsing(行=>
{
var fooValue=row.GetField(“foo”);
如果(fooValue==0m)
{
返回row.GetField(“bar”);
}
返回值;
});
也就是说,我认为您不应该使用CsvHelper进行条件映射。理想情况下,您应该有一个CSV模型和另一个要映射到的模型的映射。然后编写代码,将您的CSV模型映射到另一个模型。感谢您解决了我的问题,并提供了建议。有一个单独的CSV模型映射到我的主模型是有意义的。