f# - F#序列> 转换为字符串
问题描述
玩 F# 并尝试从 string 中获取abcdefghijklmnop
另一个 string aeimbfjncgkodhlp
。
let input ="abcdefghijklmnop"
let convertList (input:string)=
input
|> Seq.mapi(fun i ei-> i % 4, ei)
|> Seq.groupBy (fst)
|> Seq.map(fun (g,s)-> s |> Seq.map snd)
let result = convertList input
result
在我的函数最终结果是seq<seq<char>>
,如何转换seq<seq<char>>
为字符串?
解决方案
在 F# 中,string
类型实现了seq<_>
接口,这意味着您可以将字符串视为字符序列,但反过来说有点难看。
一种选择是seq<seq<char>>
只seq<char>
使用一个Seq.concat
,然后将其转换seq<string>
为您可以使用的连接String.concat
:
result |> Seq.concat |> Seq.map string |> String.concat ""
可能一个更有效但不太优雅的选择是将其转换seq<char>
为array<char>
然后可以传递给System.String
构造函数:
result |> Seq.concat |> Seq.toArray |> System.String
推荐阅读
- kubernetes - 如何从“docker-for-desktop”节点获取 IP 地址?
- android - 安卓人脸识别登录
- reactjs - 如何覆盖 MuiTouchRipple-root css
- apache-kafka - 如何在Kafka Streams DSL中查询状态存储实现消费者幂等性
- android - 如何将来自给定字节的密钥存储在 AndroidKeystore 中?
- swift - 在 watchOS 中使用 environmentObject
- javascript - 如何监听A html元素的http请求?
- opencv - 在 Oncrameframe 上检测 Android 中的文档边缘
- java - 无法在 weblogic 12.1.3 上部署 spring boot 构建的 ear 文件
- c# - 更新到 Ranorex 9.1 后无法构建解决方案