2014-12-17 3 views
2

У меня есть библиотека F #, которую я вызываю из C#, которая считывает выходные данные JSON и CSV-файлы. Библиотека выполняет обработку данных.Преобразование разделительной строки в массив

При чтении файла CSV к DataTable, я могу перебрать строки заголовка, как это:

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

То, что я хочу сделать, это пройти в колонне труб с разделителями в качестве параметра (hdrString) из C#, если файл не содержит заголовок. например "Col1 | Col2 | Col3". Я собирался использовать совпадение, чтобы определить, была ли строка пустой, а затем вернуться к заголовкам файла, разделив строку. Однако я не могу разбить строку (hdrString.split ['|']) в строковый массив (string [] []). Я пробовал разделить, но, по сути, он дает мне ошибку, что я не могу преобразовать строку в obj. Я также пробовал hdrString.ToCharArray(), но char [] несовместим со строкой []. Любые предложения о том, как я могу это сделать?

+1

Соответствующий метод использует 'String.Split'. Вы должны добавить ошибки, которые вы получили от этого. – mydogisbox

ответ

1

В вашем примере вы говорите, что попробовали hdrString.split [ '|' ], где [ '|' ] обозначает список символов, а не массив символов. Попробуйте вместо этого:

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

И, наверное, это опечатка, но .split является .Split (с большой буквы).

+1

Спасибо !!. Я бы поднял голову, но не имел достаточной репутации – RT1138

Смежные вопросы