2016-04-15 7 views
5

Я читаю CSV-файл в F # с CsvProvider из FSharp.Data. Есть ли способ добавить новые (рассчитанные) столбцы, не превратив его в совершенно новый тип?Добавление нового члена в тип CsvProvider в F #

open FSharp.Data 

type Person = CsvProvider<"persons.csv"> 
let personData = Person.Load "persons.csv" 

Если Person имеет элемент называется YearOfBirth тогда можно добавить новый элемент к нему называется Age, который будет иметь вычисленное значение (DateTime.Now.Year - YearOfBirth) для всех строк CSV?

ответ

6

Это зависит от того, что вы хотите, но это может работать:

type Person.Row with 
    member this.Age = DateTime.Now.Year - this.YearOfBirth 
+0

Это работа, это именно то, что я хотел. Спасибо, я не знал, что записи могут быть расширены таким образом в F #. – Bedford