首页 > 解决方案 > 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#

解决方案


在 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

推荐阅读