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

问题描述 投票:0回答:1

我正在尝试将以下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 []而不是行的第一个字符串值...

f# f#-data
1个回答
1
投票

你需要将s1.Split的参数放在括号中,所以你实际上是对结果进行索引,而不是参数。

let addresses = 
    File.ReadLines(CsvPath)
    |> Seq.iter (fun s1 ->
        s1.Split([|';'|]).[0]
        |> Console.WriteLine)
© www.soinside.com 2019 - 2024. All rights reserved.