解析一个非常简单的 CSV 并在 F# 中打印第一列

Parsing a very simple CSV and printing the first column in F#

我正在尝试将以下 C# 代码写入 F#:

List<string> addresses = File.ReadLines(CsvPath).Select(x => x.Split(';')[0]).Distinct().ToList();
addresses.ForEach(a => Console.WriteLine(a));

这是我想出的:

let addresses = File.ReadLines(CsvPath) |> Seq.iter (fun s1 ->
    s1.Split [|';'|].[0]
    |> Console.WriteLine
)

但是这会输出 System.String[] 而不是该行的第一个字符串值...

您需要将 s1.Split 的参数放在括号中,这样您实际上索引的是结果,而不是参数。

let addresses = 
    File.ReadLines(CsvPath)
    |> Seq.iter (fun s1 ->
        s1.Split([|';'|]).[0]
        |> Console.WriteLine)