Types Csv类型提供程序中的行的类型是什么?
我创建了一个Csv类型的提供程序:Types Csv类型提供程序中的行的类型是什么?,types,f#,type-providers,Types,F#,Type Providers,我创建了一个Csv类型的提供程序: type AssetInfo = CsvProvider<Sample="AssetInfoFS.csv", // must be a Literal HasHeaders=true, ResolutionFolder=projDataPath, AssumeMissingValue
type AssetInfo = CsvProvider<Sample="AssetInfoFS.csv", // must be a Literal
HasHeaders=true,
ResolutionFolder=projDataPath,
AssumeMissingValues=false,
CacheRows=false>
接下来,我尝试创建一个记录类型,其中一个值是一行:
type Asset = {Ticker: string; Info: CsvProvider<...>.Row; DataFrame: Frame<DateTime,string>}
type Asset={Ticker:string;Info:CsvProvider.Row;DataFrame:Frame}
我通过使用MoveNext()
和Current
以及GetType()
在IEnumerator
上为assetInfo.Rows
获取了CsvProvider.Row
。不幸的是,编译器不接受该表达式作为类型。我尝试了其他事情,但没有成功
如何找到
assetInfo
行的类型,以便在资产类型声明中使用它?在您的情况下,该行的类型将为assetInfo.row
我做了一个简单的例子,其中我有一个CSV,有两列,分别命名为Header1和Header2。我现在可以做以下工作:
module Test
open FSharp.Data
type File = CsvProvider<"""..\test.csv""">
let f (input : File.Row) = input.Header1
模块测试
打开FSharp.Data
类型File=CsvProvider
设f(输入:File.Row)=input.Header1
其中,通过将参数的类型显式命名为f
,Intellisense向我显示类型上的两个字段
module Test
open FSharp.Data
type File = CsvProvider<"""..\test.csv""">
let f (input : File.Row) = input.Header1