2016-04-15 6 views
5

Ich lese eine CSV-Datei in F # mit CsvProvider von FSharp.Data. Gibt es eine Möglichkeit, neue (berechnete) Spalten hinzuzufügen, ohne sie in einen völlig neuen Typ umzuwandeln?Hinzufügen eines neuen Members zum CsvProvider-Typ in F #

open FSharp.Data 

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

Wenn Person hat ein Mitglied namens YearOfBirth dann ist es möglich, ein neues Mitglied hinzufügen, um es Age genannt, die den berechneten Wert von (DateTime.Now.Year - YearOfBirth) für alle CSV-Reihen haben würden?

Antwort

6

Es hängt davon ab, was Sie wollen, aber das funktioniert kann:

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

es funktioniert, es ist genau das, was ich wollte. Danke, ich wusste nicht, dass Datensätze in F # auf diese Weise erweitert werden können. – Bedford