我是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)
Run Code Online (Sandbox Code Playgroud)
然而,它说引擎不是一个可以枚举其值的类型,但它实现了IEnumerable.任何人对可能的修复或不同的方法有任何建议.
我需要能够按记录处理csv记录,将每个记录转换为orderType,然后将订单存储到队列中.谢谢你的帮助
engine(称为FileHelperAsyncEngine)的类型仅实现非泛型版本IEnumerable,但它不实现IEnumerable<T>F#编译器所需的泛型.
您需要将非泛型转换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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
405 次 |
| 最近记录: |