2011-12-16 69 views
1

我有一個數據結構是哈希表的列表,像這樣:如何參數化linq查詢?

List<Hashtable> lh = new List<Hashtable>(); 

而此容器一個相當簡單的LINQ查詢:

var query = from h in lh where h["foo"] == "bar" select h; 

有沒有辦法來參數where子句?喜歡的東西:

var where_clause = where h["foo"] == "bar"; 
var query = from h in lh where_clause select h; 

回答

6

取決於你試圖完成什麼,不過是你可以:

Func<List<Hashtable>, bool> where_clause = h => h["foo"] == "bar"; 
List<Hashtable> lh = new List<Hashtable>(); 
var query = lh.Where(where_clause); 
+0

非常漂亮。但是我們可以參數化'h [「foo」] ==「bar」'本身作爲一個字符串嗎? –

+0

當然。查找有關Dynamic LINQ的信息。從ScottGu的博客文章開始:http://weblogs.asp.net/scottgu/archive/2008/01/07/dynamic-linq-part-1-using-the-linq-dynamic-query-library.aspx –