文字列引数を指定してプロパティの値を取得する方法を教えてください。引数に応じてプロパティ値を読み取る方法
私は属性がa、b、cであるオブジェクトCsvProvider.Row
を持っています。 文字列引数として指定されたプロパティに応じて、属性値を取得します。 私はこのような何か試してみました:
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)
このようなものも可能ですか?
ありがとうございました!
あなたはこれを反映する必要がありますが、なぜ名前の代わりにゲッターを使用しないのですか? 'let getValue(ts、getter:CsvProvider <"s.csv"> .Row - > 'a)= ...' – Carsten
@Carsten yup私はこれを行うことができると思っていた。 。 は、だから私はあなたが提案しているように、私が何かを書く必要があると仮定したり てみましょうのgetValue(タプル、名:文字列)= SNDタプル|> Seq.averageBy(楽しいY - > typedefof .Row> .GetField(名)。 GetValue():?> float) –
MNie
それはあなた次第ですが、選択肢を与えられます*私はコンパイラでチェックされた式を持つことができるとき、私は決して魔法の文字列やリフレクションを使用しません – Carsten