如何獲取給定字符串參數的屬性值。如何根據參數讀取屬性值
我有一個對象CsvProvider.Row
它有屬性a,b,c。 我想獲取屬性值取決於作爲字符串參數給定的屬性。 我想是這樣的:
let getValue (tuple, name: string) =
snd tuple |> Seq.averageBy (fun (y: CsvProvider<"s.csv">.Row) -> y.```name```)
,但它給了我下面的錯誤:
Unexpected reserved keyword in lambda expression. Expected incomplete structured construct at or before this point or other token.
的功能簡單的調用應該是這樣的:
getValue(tuple, "a")
,它應該是相當於以下功能:
let getValue (tuple) =
snd tuple |> Seq.averageBy (fun (y: CsvProvider<"s.csv">.Row) -> y.a)
這樣的事情甚至可能嗎?
感謝您的幫助!
你需要反思 - 但爲什麼你不使用getter而不是名字? 'let getValue(ts,getter:CsvProvider <"s.csv"> .Row - >'a)= ...' – Carsten
@Carsten yup我可以,但我想我可以這樣做,因爲對我來說它看起來會更好。 所以我想,像你建議我應該寫東西,或 讓的getValue(元組,名稱:字符串)= SND元組|> Seq.averageBy(樂趣Ÿ - > typedefof .Row> .GetField(名稱)。 GetValue():?> float) –
MNie
這取決於你,但給出選擇*我不會使用魔術字符串或反射時,我可以有編譯器檢查表達式 – Carsten