我对F#相当陌生,这是我的第一篇文章,所以希望我能对我的问题提供足够的描述。
就像标题说的那样,我需要将(string * int) []
函数写入文本文件。我知道System.IO.File.WriteAllText (string, string)
,但是我有办法写文本文件而不先转换为string
吗?
现在,我有一种单词计数,该单词计数与计数的单词和单词出现的次数进行排序。像这样:
[|("and", 130); ("he", 128); ("that", 103); ("was", 80); ...|]
文本文件的文件目录可以只是我项目中.fsx
文件的位置。
答案 0 :(得分:2)
您确实需要以某种方式转换数组。这通常是一件好事,因为它会迫使您控制文件的格式。当然,您可以使用某种类型的序列化程序,但是对于这样一个简单的任务来说可能有点过多。
我可能会做这样的事情:
open System.IO
let words = [|("and", 130); ("he", 128); ("that", 103); ("was", 80) |]
let lines = words |> Array.map (fun (w, c) -> sprintf "%s;%i" w c)
File.WriteAllLines(__SOURCE_DIRECTORY__ + @"\file.csv", lines)