Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
F#处理csv,逐个记录解析_Csv_F# - Fatal编程技术网

F#处理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

我不熟悉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)
让导入器(文件路径:字符串)=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)