動的プロパティー名をとるlinq照会を作成しようとしています。したがって、たとえば、プロパティ名は「試験」、であれば、単純なクエリは次のようになります。動的プロパティー名
var test = testList.Select(x => x.test).Distinct().ToList();
しかし、私は例えば、動的にプロパティ名を生成したい:
var propertyName = "test";
var test = testList.Select(x => x.propertyName).Distinct().ToList();
私が手'propertyName'は実際のプロパティではないため、エラーです。
は何これを達成するための最良の方法だろうか?
。 'testList'が' ExpandoObjects'(推奨されません)でいっぱいであれば、それらを 'IDictionary'にキャストし、文字列でインデックスすることができます。また、リフレクションを使用することもできます。しかし、あなたが本当にこれを行う必要はほとんどありません。どのような問題を解決するために、このLINQクエリを使用していますか? –
...ああ、プロパティ式ラムダを '式 'などで構築することもできます。私はそれがどのように推薦されているのか、おそらく他のものよりもよく分かりません。 –
返事をありがとう、私はおそらくこれについては間違った方向に行くだろう。私はちょうどこれと同様のプロパティの一意の値のリストを抽出しようとしています - http://stackoverflow.com/questions/10255121/get-a-list-of-distinct-values-in-list があります私がこれを行うために必要ないくつかのプロパティとクラス。私はコードを複製する必要がないように、プロパティ名を動的に生成したいと思っていました。 – richard