可以說我有這有以下形式:Lambda表達式和搜索
名稱:文本框
電子郵件:文本框
年齡:文本框
現在我想要得到的客戶集合基於此過濾器文本框
所以我想用類似的東西:
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方法IM來期待Expression<Func<T, bool>> expression
所以它不工作讓我編譯時錯誤斜面在類型之間轉換!
肯定的,但與問題是,我將失去智能感知並強烈鍵入我試過 var a =(Customer C)=> c.name == txtName.Text; 但它給了我編譯時錯誤: lambda表達式不能分配給隱式類型的局部變量 – Stacker 2010-08-10 08:45:43
@Zeus那不是你的lambda表達式的錯誤,但只是specifiing你正在尋找的委託類型的要求在你的情況下創建你可以propably寫Predicate或Func 。沒有你不會放鬆類型安全。 _只是鬆動那是動態的。 –
2010-08-10 08:54:59