【发布时间】:2018-06-17 03:08:31
【问题描述】:
我需要从记录中提取状态的字符串版本。代码如下:
type State = State of string
type Data =
{ State : State
Year : int
Income : float }
我需要做的是提取每个状态的字符串版本序列,而不是状态“字符串”。当我尝试执行以下操作时,我得到一个空序列。在运行处理数据并将数据映射到上述记录的代码后,我运行下面的代码。
let states (row:Data) = row.State
// <fun:it@145-1> val it : unit = ()
我需要一个序列,因为最后我将使用它来检查并确保一个数据集中的状态在另一个数据集中。
已编辑:
在做了类似下面的事情之后,我仍然得到空序列。
let stateToStr (State s) = s
let statec (row:StateCsv) = (stateToStr row.State)
printfn "%A" statec
// val stateToStr : State -> string
// val statec : row:StateCsv -> string
// val it : unit = ()
在将数据映射到这样的记录之后再次:
let statepa () =
Stat.GetSample().Rows
|> Seq.map(fun row ->
{ State = row.STATE
Year = row.Year })
【问题讨论】:
-
另外,当您执行
printfn "%A" statec时,您希望它做什么?因为它实际上会打印函数本身,这很少有用。我认为你的意思是printfn "%A" (statec someRow),它会将一行数据作为输入传递给函数,并打印函数的result。
标签: f#