如何参数化linq查询?

Ste*_*oss 1 linq

我有一个数据结构,它是一个哈希表列表,如下所示:

List<Hashtable> lh = new List<Hashtable>();
Run Code Online (Sandbox Code Playgroud)

这个容器的一个相当简单的LINQ查询:

var query = from h in lh where h["foo"] == "bar" select h;
Run Code Online (Sandbox Code Playgroud)

有没有办法参数化where子句?就像是:

var where_clause = where h["foo"] == "bar";
var query = from h in lh where_clause select h;
Run Code Online (Sandbox Code Playgroud)

Phi*_*ein 6

取决于你想要完成什么,但是你可以:

Func<List<Hashtable>, bool> where_clause = h => h["foo"] == "bar";
List<Hashtable> lh = new List<Hashtable>();
var query = lh.Where(where_clause);
Run Code Online (Sandbox Code Playgroud)