[英]F# processing csv, parsing record by record
我基本上是F#的新手,我正在尝试使用FileHelpers库按记录导入csv记录。 这样我便可以将每个对象放入队列中。
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)
然而,俗话说引擎不是可以枚举值的类型,但它实现了IEnumerable。 任何人都对可能的修复方法或其他方法提出了任何建议。
我需要能够通过记录处理csv记录,将每个记录转换为orderType,然后将订单存储到队列中。 谢谢你们的帮助
engine
类型(称为FileHelperAsyncEngine
)仅实现IEnumerable
的非通用版本,但未实现F#编译器所需的通用IEnumerable<T>
。
您需要将非泛型IEnumerable
为泛型IEnumerable<obj>
(或泛型的其他一些实例化,具体取决于集合中值的类型)。 以下应该可以解决问题:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.