CSV记录中的字符串列表?

CSV记录中的字符串列表?,csv,f#,export-to-csv,Csv,F#,Export To Csv,如何在不截断列表的情况下将记录中的字符串列表写入CSV CSV编写器: let toSepFile sep header (fileName:string) (s:'record seq)= let schemaType=typeof<'record> let fields = Reflection.FSharpType.GetRecordFields(schemaType) let toStr fields = fields

如何在不截断列表的情况下将记录中的字符串列表写入CSV

CSV编写器:

let toSepFile sep header (fileName:string) (s:'record seq)=

    let schemaType=typeof<'record>
    let fields = Reflection.FSharpType.GetRecordFields(schemaType) 

    let toStr fields = 
        fields
        |> Seq.fold(fun res field-> res+field+sep) ""

    use w = new System.IO.StreamWriter(fileName)

    if header then 
        let header_str= fields
                    |> Seq.map(fun field -> field.Name)
                    |> toStr

        w.WriteLine(header_str)

    let elemToStr (elem:'record) = 
        //for each field get value 
        fields
        |> Seq.map(fun field -> string (FSharpValue.GetRecordField(elem,field)))
        |> toStr

    s
    |>Seq.map(elemToStr)
    |>Seq.iter(fun elem -> w.WriteLine(elem))
当前CSV输出:

Name    Age Countries   
"Joe    51  [CZ; UK; US; ... ]  "
"Tomas  28  [CZ; UK; US; ... ]  "
"Suzanne    15  [US]    "
那么,是否可以从CSV输出中看到字符串的完整列表,而不是“…”

编辑:所需输出:

    Name    Age Countries   
    "Joe      51    [CZ; UK; US]    "
    "Tomas    28    [CZ; UK; US; CZ]    "
    "Suzanne  15    [US]    "

您遇到的问题是,对于
List
s,
ToString()
方法会截断输出。解决方法是不要使用
ToString()
,而是使用
sprint“%A”*这里的列表*

您希望您的输出是什么样子的?谢谢,将Seq.map(fun field->string(FSharpValue.GetRecordField(elem,field))中的“string”更改为sprintf“%A”就成功了。
    Name    Age Countries   
    "Joe      51    [CZ; UK; US]    "
    "Tomas    28    [CZ; UK; US; CZ]    "
    "Suzanne  15    [US]    "