С C # я могу использовать string.Join("", lines)
для преобразования массива строк в строку.
Что я могу сделать, чтобы сделать то же самое с F #?
ДОБАВЛЕНО
Мне нужно прочитать строки из файла, выполнить некоторую операцию, а затем объединить все строки в одну строку.
Когда я запускаю этот код
open System.IO
open String
let lines =
let re = System.Text.RegularExpressions.Regex(@"#(\d+)")
[|for line in File.ReadAllLines("tclscript.do") ->
re.Replace(line.Replace("{", "{{").Replace("}", "}}").Trim(), "$1", 1)|]
let concatenatedLine = String.Join("", lines)
File.WriteAllLines("tclscript.txt", concatenatedLine)
Я получил эту ошибку
error FS0039: The value or constructor 'Join' is not defined
Я попробовал этот код let concatenatedLine = lines |> String.concat ""
, чтобы получить эту ошибку
error FS0001: This expression was expected to have type
string []
but here has type
string
Решение
open System.IO
open System
let lines =
let re = System.Text.RegularExpressions.Regex(@"#(\d+)")
[|for line in File.ReadAllLines("tclscript.do") ->
re.Replace(line.Replace("{", "{{").Replace("}", "}}"), "$1", 1) + @"\n"|]
let concatenatedLine = String.Join("", lines)
File.WriteAllText("tclscript.txt", concatenatedLine)
и этот тоже работает.
let concatenatedLine = lines |> String.concat ""