这是我目前的代码:
placeId
|> Sql.getEOByPlace
|> Array.map (fun eo -> (eo, getType eo)) // (Item * ItemType option)
|> Array.filter (fun (i, it) -> it.IsSome)
|> Array.map (fun (i, it) -> (i, it.Value) // (Item * ItemType)
有没有办法简化最后三行代码?
我需要像Array.choose
这样的东西,但需要元组的一个元素。
答案 0 :(得分:5)
您可以返回(a * b) option
而不是a * b option
并使用Array.choose
:
placeId
|> Sql.getEOByPlace
|> Array.choose (fun eo -> (getType eo) |> Option.map (t -> (eo, t)))