2

以下のように、変数名に基づいてフィールドを選択できるようにしたいと考えています。以下は機能せず、大きなswitchステートメントを実行しないと解決策を見つけることができません。

var guidId = new Guid("");
var fieldName= "somefield";

var query =
 from c in Financials
 where c.GuidId == guidId 
 select **fieldName**;

これを行う簡単な方法はありますか?

ありがとうオースティン

4

2 に答える 2

2

これを試してください:

select c.GetType().GetProperty(fieldName).GetValue(c, null)

this SO questionでこれを見つけました。クエリで何らかの理由で私の答えがうまくいかない場合はselect c、SOの質問への回答に示されているように、メソッドを介してそれを入れることができます。

注: を返すobjectので、注意してください。

于 2013-02-28T16:33:28.460 に答える
0

リフレクションを使用できます:

select c.GetType().GetProperty(fieldName).GetValue(c, null);

プロパティの値を名前で取得する唯一の方法です。

于 2013-02-28T16:34:01.510 に答える