Допустим, у меня есть формы, которые имеют следующее:лямбда-выражения и поиск
Имя: TextBox
Email: TextBox
Возраст: TextBox
теперь я хочу, чтобы получить клиентов Коллекцию на основе этого текстового поля фильтра
поэтому я хочу использовать что-то вроде:
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;
, как мне это сделать! я не могу конкатенировать лямбда-выражения, я знаю, что могу использовать динамические выражения, но я думаю, что есть более простой способ? любая идея, как это реализовать?
ок я попытался это:
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
так он не работает дает мне времени компиляции ошибки косяк конвертировать между типами!
да, но проблема в том, как я буду терять intelisense и строго типизировано, я попробовал var a = (Customer C) => c.name == txtName.Text; , но он дал мне компиляцию ошибки времени: Невозможно назначить лямбда-выражения для неявно типизированных локальных переменной – Stacker
@Zeus, что это не ошибка вашего лямбда-выражения, а просто требование specifiing типа делегата вы хотите создайте в своем случае, вы можете использовать пиджак или Func . и никакие yoo не потеряют безопасность типа. _only_, чтобы потерять, что является динамическим. –