将分隔的字符串转换为数组

时间:2014-12-17 17:20:54

标签: f# f#-data

我有一个我从C#调用的F#库,它读取JSON输出和CSV文件。该库处理数据。

将CSV文件读取到数据表时,我可以像这样迭代标题行:

let myfile=FSharp.Data.CsvFile.Load(inFile)
let headers=[| myfile.Headers.Value |]
headers.[0]
            |>Seq.iter(fun y-> dataTable.Columns.Add(new DataColumn(y)))

我想要做的是在文件不包含标头的情况下从C#传入一个以管道分隔的字符串作为参数(hdrString)。例如“Col1中| col2的| COL3”。我打算使用匹配来确定字符串是否为空,然后通过拆分字符串恢复到文件头。但是,我似乎无法将字符串(hdrString.split ['|'])成功分割为字符串数组(string [] [])。我试过拆分,但它给了我一个错误,基本上,我不能将字符串转换为obj。我也试过hdrString.ToCharArray()但是char []与string []不兼容。关于我如何做到这一点的任何建议?

1 个答案:

答案 0 :(得分:1)

在您的示例中,您说您尝试了hdrString.split [ '|' ],其中[ '|' ]表示字符列表,而不是字符数组。请尝试改为:

let hdrString = "Col1|Col2|Col3"
hdrString.Split [| '|' |]

可能它是一个错字,但.split.Split(有大写字母S)。