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
在lambda中创建记录_Lambda_F#_Record - Fatal编程技术网

在lambda中创建记录

在lambda中创建记录,lambda,f#,record,Lambda,F#,Record,我在将数组中的数组转换为记录类型时遇到了一些问题。有问题的代码是这样的 let arrayToTransaction arr = arr |> Array.map (fun x -> splitStr [|"\n"|]) |> Array.collect (fun x -> { date = DateTime.Parse(x.[1]);

我在将数组中的数组转换为记录类型时遇到了一些问题。有问题的代码是这样的

let arrayToTransaction arr =
        arr 
        |> Array.map (fun x -> splitStr [|"\n"|])
        |> Array.collect 
            (fun x -> { 
                        date = DateTime.Parse(x.[1]);
                        payee = x.[0].Substring(0, x.[0].IndexOf(','))
                        category = "Test category"
                        memo = "Parsed with my F# parser"
                        outflow = Single.Parse(str.Substring(str.IndexOf('-') + 1))
                        inflow = 0.0f
                      })
我得到的错误是

错误1类型“a[]”不包含字段“日期”

但我已经正确定义了我知道的记录类型,因为:

let x = { date = DateTime.Now; payee = "test"; category = "test"; memo = "test"; outflow = 0.0f; inflow = 0.0f }

工作正常。

传递给
数组的函数。collect
应返回数组而不是记录。您可以使用
[|…|]
将记录包装在数组中,也可以使用
array.map
而不是
array.collect