F#处理csv,逐个记录解析
我不熟悉F#基本上我正在尝试使用FileHelpers库逐个记录导入csv记录。这样我就可以把每个对象放在一个队列中F#处理csv,逐个记录解析,csv,f#,Csv,F#,我不熟悉F#基本上我正在尝试使用FileHelpers库逐个记录导入csv记录。这样我就可以把每个对象放在一个队列中 let importOrders (filePath:string) = do let engine = new FileHelpers.FileHelperAsyncEngine(typeof<DataTypes.Order.OrderType>) engine.BeginReadFile(filePath) for o i
let importOrders (filePath:string) = do
let engine = new FileHelpers.FileHelperAsyncEngine(typeof<DataTypes.Order.OrderType>)
engine.BeginReadFile(filePath)
for o in engine do
unProccessedData.Enqueue(o)
让导入器(文件路径:字符串)=do
let engine=new FileHelpers.FileHelperAsyncEngine(typeof)
engine.BeginReadFile(文件路径)
对于发动机do中的o
未访问数据。排队(o)
然而,它说引擎不是一个可以枚举其值的类型,但它实现了IEnumerable。有人对可能的修复或不同的方法有任何建议吗
我需要能够逐个记录处理csv记录,将每个记录转换为orderType,然后将订单存储到队列中。感谢帮助人员类型的
引擎
(称为FileHelperAsyncEngine
)只实现了IEnumerable
的非泛型版本,但没有实现F编译器所需的泛型IEnumerable
您需要将非泛型的IEnumerable
强制转换为泛型的IEnumerable
(或者转换为泛型类型的其他实例化,具体取决于集合中的值类型)。下面应该可以做到这一点:
let importOrders (filePath:string) =
let engine = new FileHelpers.FileHelperAsyncEngine(typeof<OrderType>)
engine.BeginReadFile(filePath)
for o in engine |> Seq.cast<obj> do // NOTE: Conversion using Seq.cast
unProccessedData.Enqueue(o)
let导入器(文件路径:字符串)=
let engine=new FileHelpers.FileHelperAsyncEngine(typeof)
engine.BeginReadFile(文件路径)
对于引擎中的o |>Seq.cast do//注意:使用Seq.cast进行转换
未访问数据。排队(o)