我怎麼會去連接兩個lambda表達式像theese:加入拉姆達表達式
Expression<Func<string, bool>> expr1 = a => a.Length > 100;
Expression<Func<string, bool>> expr2 = b => b.Length < 200;
...到表達這樣的:
Expression<Func<string, bool>> expr3 = s => s.Length < 100 && s.Length < 200;
也就是說,與AndAlso經營者加入他們。 (或任何其他運營商的事情......)
我實際上成功了一些討厭的遞歸替換lambda參數,然後加入Expression.AndAlso方法。但我正在尋找更簡單的東西。
例如是這樣的:(這顯然不工作)
Expression<Func<string, bool>> expr3 = c => expr1(a) && expr2(b);
只是想知道,你爲什麼不能使用表達式> expr3 = s => s.Length <100 && s.Length <200 ;? –
2010-03-01 19:05:40
這是因爲表達式是基於系統中的設置生成的。我實際上需要將一個表達式列表加入到一個最終表達式中。 – LaZe 2010-03-01 19:14:34