在F#中编写通用函数以保存csv文件

在F#中编写通用函数以保存csv文件,f#,type-providers,f#-data,F#,Type Providers,F# Data,我需要读取一个csv文件,并从保存到文件中生成几个不同的数据投影。我正在使用CsvProvider读取文件,然后将数据映射到其他CsvProvider,并将其保存到磁盘。目前,我有单独的保存功能来保存每个投影。我想知道是否可以像这样创建一个通用的saveCsv函数 let saveCsv<'a when 'a :> CsvProvider> (csvType:'a) fileName data = let csv = new csvType(data) csv.

我需要读取一个csv文件,并从保存到文件中生成几个不同的数据投影。我正在使用
CsvProvider
读取文件,然后将数据映射到其他CsvProvider,并将其保存到磁盘。目前,我有单独的保存功能来保存每个投影。我想知道是否可以像这样创建一个通用的
saveCsv
函数

let saveCsv<'a when 'a :> CsvProvider> (csvType:'a) fileName data =
    let csv = new csvType(data)
    csv.Save(fileName)
让saveCsv CsvProvider>(csvType:'a)文件名数据=
让csv=新的csv类型(数据)
csv.Save(文件名)

我似乎无法获得正确的类型约束以及如何新建csvtype的实例?

既然CSV文件是文本文件,为什么不编写一个函数,将
字符串作为输入并将其保存到文件中?如果您有非常大的文件,您可以使用
string-seq
代替(行),或者甚至使用
char-seq
进行延迟计算。也许CsvFile更适合您?你能看看这些是否与你有关吗。我不是在回答最后一个问题,但是如果您已经有了CsvFileA类型,那么您可以使用它的.Row(_)方法映射数据。然后您就可以
新建CsvFileA(行)