我要過濾的IEnumerable<ModuleItem>
由凡由用戶定義的調用(這樣的表達是通過一個String對象給出)動態拉姆達包裹着嘗試捕捉
到目前爲止,我可以創造我的過濾器與DynamicLinq與此代碼
Expression<Func<ModuleItem, bool>> expr = System.Linq.Dynamic.DynamicExpression.ParseLambda<ModuleItem, bool>(value, null);
問題是如果集合中的某個項目的評估失敗,則整體篩選將失敗。所以我想在lambda中捕獲異常,並返回false來過濾出失敗的項目。
我試着用TryExpression.TryCatch(...)
包裝的表達,但我不能回去的Expression<Func<ModuleItem, bool>>
我如何包裝我的動態表達,並取回一個Expression<Func<ModuleItem, bool>>
對象作爲參數在哪裏使用?
你有一個'IEnumerable',而不是一個'IQueryable',那你爲什麼處理表達式,而不僅僅是代表,首先呢? – Servy
您需要一個帶有return語句的塊。 – SLaks
我並不在乎它是表達式還是塊。我的約束是獲得一個表達式作爲一個字符串,並將其提供給一個IEnumerable.Where調用。 – Max