极端的noob即将学习的问题:我有一个想在我的C#(通用)应用程序中使用的模块。C#应用程序将下载并解压缩包含12个CSV的文件,这些文件将始终遵循相同的格式。因此,我要做的是提前下载CSV,并将它们添加到我的解决方案中,以便CsvProvider <“ thefile.csv”>中引用的文件将在编译时存在。
namespace ExperimentalFSLibrary
module CsvHelper =
open FSharp.Data
let GetCsvA path =
CsvProvider<"thefileA.csv">.Load(path)
Run Code Online (Sandbox Code Playgroud)
然后从我的c#应用程序中调用此命令,如下所示:
var ReceivedCsvA = ExperimentalFSLibrary.CsvHelper.GetCsvA
Run Code Online (Sandbox Code Playgroud)
从F#库获取数据还没有成功
还有一个问题是如何处理十二个不同的文件,因为我必须为CsvProvider指定模板文件,我想我必须编写12个不同的函数?
我在SO周围搜索,发现了让我走到现在的东西,但我碰到了墙。任何帮助,包括健康检查,将不胜感激。
该CsvProvider在FSharp.Data为擦除型供应商。这意味着在C#中没有任何类型可以使用。
诸如此类的许多F#类型提供程序仅在从F#内部使用时才有用。
在这种情况下,最好是解析CSV数据并通过C#代码中的一些API消耗返回所需的结果。
还有一个问题是如何处理十二个不同的文件,因为我必须为CsvProvider指定模板文件,我想我必须编写12个不同的函数?
通常,您需要为每个文件结构(而不是每个文件)提供单独的功能。如果这12个文件都使用相同的column / headers / etc,则单个类型提供程序类型将在每个文件中起作用。提供的静态文件名仅用于确定所生成类型的列结构。