0
我想過濾一個對象列表(List)綁定到網格。現在我想根據用戶要求過濾這個列表。 我有組合框來選擇要過濾的字段和文本框以輸入值。從那裏用戶可以選擇ItemCode或Cost或任何與Item類相關的屬性。那麼如何根據所選字段和輸入值創建lambda表達式。 。創建lambda表達式
我想過濾一個對象列表(List)綁定到網格。現在我想根據用戶要求過濾這個列表。 我有組合框來選擇要過濾的字段和文本框以輸入值。從那裏用戶可以選擇ItemCode或Cost或任何與Item類相關的屬性。那麼如何根據所選字段和輸入值創建lambda表達式。 。創建lambda表達式
一個靈活但不是非常簡單的選擇就是使用動態LINQ。您可以基於用戶選擇構建查詢,甚至可以使用AND和OR操作和比較運算符等使用多個屬性,並使用它來過濾結果。動態LINQ上的ScottGu's post。
另一個直截了當的選擇是,每個房產都有一個巨大的開關箱。
...
case "ItemCode":
results = records.Where(i => i.ItemCode == criteriaValue);
break;
case "Cost":
results = recotds.Where(i => i.Cost == Convert.ToDouble(criteriaValue));
break;
...