【发布时间】:2012-10-25 15:27:10
【问题描述】:
我正在尝试将元组序列写入 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 的替代方法?
【问题讨论】:
标签: f# tuples export-to-csv