2011-09-16 3 views
1

私には、telerikグリッドのフィルタリングを設定する拡張メソッドがあります。パラメータとしてラムダ式を受け取ります。既存のものから新しい表現を作成することが可能である私は既存のラムダ式からダイナミックラムダを作成する

Expression<Func<object,bool?>> filtere = obj=>obj == null? null: obj.ToString().StartsWith("xyz");//return type is nullable cause of string 
Expression<Func<object,bool>> filtere = obj=>Convert.ToInt32(obj) < 20 //return type is non-nullable cause of int 

のような式を作成したい

public static void ConfigureFiltering<T>(this HtmlHelper html, Configurator conf, params Expression<Func<T,object>>[] args) where T:class 
{ 
} 

を例えば誰かがplzは私がわからないどのようにこの問題に

+0

これは実行できます。ソース式の例とそれを変換したいものはありますか? – Jacob

+0

初めて作成しようとしていません。 –

+0

argsが 'Expression >型のソースlambdaの配列で、2番目のコードスニペットで書かれているように変換したい場合は、最初に作成します。 –

答えて

0

をターゲットに私を導くことができます何が問題なのか、あなたの質問の最初と2番目の部分がどのように関連しているのでしょうか?

私はあなたの最初の式の三項演算子は、それはなりますので、bool?にそのnullをキャストする必要があることを伝えることができます:

Expression<Func<object,bool?>> filtere = obj=>obj == null 
    ? (bool?)null 
    : obj.ToString().StartsWith("xyz"); 

をまた、両方の式はfiltereの同じ変数名を共有することはできません。

それを超えると、あなたがやろうとしていることについてもう少し詳しく説明する必要があります。

+0

Jay私の方法の本体ではありません。 'Expression > 'から始めたい目標式の例です。そうでなければ 'Expression >'という型の式を作成します。そうでない場合は 'Expression >'です。 –

関連する問題