2017-03-04 1 views
2

나는를 CSV 형식 제공자를 생성Csv 유형 공급자의 행 유형은 무엇입니까? 나는 약간의 정보를로드 그런</p> <pre><code>type AssetInfo = CsvProvider<Sample="AssetInfoFS.csv", // must be a Literal HasHeaders=true, ResolutionFolder=projDataPath, AssumeMissingValues=false, CacheRows=false> </code></pre> <p>일부 행을 삭제 :

let assetInfo = AssetInfo.Load(projDataPath + @"AssetInfoFS.csv") 
let traderInfoRecords = 
    assetInfo.Rows 
    |> Seq.filter (fun elem -> Set.contains elem.Ticker tradedTickerSet) 

다음으로는 중 하나로 행을 것이다 레코드 유형을 만들려고 그 값 :

type Asset = {Ticker: string; Info: CsvProvider<...>.Row; DataFrame: Frame<DateTime,string>} 

내가 MoveNext()를 사용하여 CsvProvider<...>.Row을 가지고 다음 CurrentGetType()assetInfo.Rows에 대해서는 IEnumerator입니다. 불행하게도 컴파일러는 그 표현을 타입으로 받아들이지 않습니다. 나는 성공하지 못한 다른 일들을 시도했다.

assetInfo 행의 유형을 찾으려면 어떻게해야 자산 유형 선언에서 사용할 수 있습니까?

답변

3

귀하의 경우 행의 유형은 AssetInfo.Row입니다.

Header1과 Header2라는 두 개의 열이있는 CSV가있는 간단한 예를 만들었습니다. 이제 다음을 수행 할 수 있습니다

module Test 

open FSharp.Data 

type File = CsvProvider<"""..\test.csv"""> 

let f (input : File.Row) = input.Header1 

경우 명시 적으로 f에 인수의 유형을 명명하여, 인텔리 나에게 유형의 필드를 모두 보여줍니다.

관련 문제