Создание динамической лямбды из существующего лямбда-выражения - PullRequest
1 голос
/ 17 сентября 2011

У меня есть метод расширения, который настраивает фильтрацию для Telerik Grid.он получает лямбда-выражения в качестве параметра.Можно ли создавать новые выражения из существующих, например,

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

Я хочу создать выражения, такие как

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

Может кто-нибудь PLZ, подскажите мне, как решить эту проблему

1 Ответ

0 голосов
/ 17 сентября 2011

Я не уверен, в чем проблема, которую вы испытываете, и как соотносятся первая и вторая части вашего вопроса.

Я могу вам сказать, что троичный оператор в вашем первом выражении должен будет привести это значение null к bool?, поэтому оно станет:

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

Кроме того, оба выражения не могут иметь одно и то же имя переменной filtere.

Кроме того, вам нужно будет более подробно объяснить, что вы пытаетесь сделать.

...