我试图将一个元组序列写入 csv,但正常的 File.WriteAllLines 被一个元组序列重载。
因此,我试图将我的元组扁平化为一系列字符串。
这是我的代码:-
open System;;
open Microsoft.FSharp.Reflection;;
let tupleToString (t: string * float) =
if FSharpType.IsTuple(t.GetType())
then String.Format("{0},{1}", fst t, snd t)
else "";;
let testTuple = ("monkey", 15.168);;
tupleToString(testTuple);;
let testSeqTuple = [("monkey", 15.168); ("donkey", 12.980)];;
let allIsStrings (t:seq<string * float>) = Seq.collect tupleToString t;;
allIsStrings(testSeqTuple);;
当我只在一个元组上使用“tupleToString”时,结果就很好了。
然而, allIsStrings 的 Seq.collect 部分返回按字符分解的元组。
我也尝试过 Seq.choose 和 Seq.fold,但这些只会抛出错误。
任何人都可以建议我应该使用序列模块中的什么功能 - 或者建议可以在元组上工作的 File.WriteAllLines 的替代方法吗?