【发布时间】:2011-03-27 17:02:27
【问题描述】:
假设我有一个具有以下内容的表单:
名称:文本框
电子邮件:文本框
年龄:文本框
现在我想根据这个过滤器文本框获取客户集合
所以我想使用类似的东西:
List<customer> customers = getCustomerswhere(c=>c.name == txtName.Text && Email == txtEmail.Text);
现在我当然不知道他会填什么,他不会填什么
if (txtName.Text.trim() != "")
//something like c=>c.Name == txtName.text;
if (txtEmail.Text.trim() != "")
//something like and c=>c.Email == txtEmail.text;
我该怎么做!我不能连接 lambda 表达式,我知道我可以使用动态表达式,但我认为有更简单的方法吗?知道如何实现吗?
好的,我试过了:
Func<Customer,bool > a = (bb) => bb.fullName == "asdfsd";
Func<Customer, bool> b = c => c.lastName == "sdas";
Func<Customer, bool> cc = c => a(c) && b(c);
又一个问题来了
我将 CC 传递给的方法是 Expression<Func<T, bool>> expression
所以它不起作用给我编译时错误不能在类型之间转换!
【问题讨论】: