从这个例子这篇文章有一个例子
open System.IO
let lines =
File.ReadAllLines("tclscript.do")
|> Seq.map (fun line ->
let newLine = line.Replace("{", "{{").Replace("}", "}}")
newLine )
File.WriteAllLines("tclscript.txt", lines)
Run Code Online (Sandbox Code Playgroud)
编译时出错.
error FS0001: This expression was expected to have type
string []
but here has type
seq<string>
Run Code Online (Sandbox Code Playgroud)
如何将seq转换为string []以删除此错误消息?
基于Jaime的答案,因为ReadAllLines()返回一个数组,只需使用Array.map而不是Seq.map
open System.IO
let lines =
File.ReadAllLines("tclscript.do")
|> Array.map (fun line ->
let newLine = line.Replace("{", "{{").Replace("}", "}}")
newLine )
File.WriteAllLines("tclscript.txt", lines)
Run Code Online (Sandbox Code Playgroud)
您可以使用
File.WriteAllLines("tclscript.txt", Seq.toArray lines)
Run Code Online (Sandbox Code Playgroud)
或者只是附上
|> Seq.toArray
Run Code Online (Sandbox Code Playgroud)
在Seq.map调用之后.
(另请注意,在.NET 4中,WriteAllLines的重载确实占用了Seq)