2011-05-10 89 views
0

我想過濾一個對象列表(List)綁定到網格。現在我想根據用戶要求過濾這個列表。 我有組合框來選擇要過濾的字段和文本框以輸入值。從那裏用戶可以選擇ItemCode或Cost或任何與Item類相關的屬性。那麼如何根據所選字段和輸入值創建lambda表達式。 。創建lambda表達式

回答

1

一個靈活但不是非常簡單的選擇就是使用動態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; 
...