我想做一个LINQ语句,where子句来自一个变量。例如:C#Linq where子句作为变量
string whereClause = address.zip == 23456;
var x = from something in someList where whereClause;
这可能吗?我似乎无法得到它的工作。
感谢,
更新 - 我的where子句是预定义的,将根据用户输入的,所以我不认为这会为我工作。基本上,在方法中没有构造Clause的地方,它是LINQ的方法的一个参数。我没有解释,以及这是一个更好的例子:
public void doLnq(string whereClause)
{
var x = from something in someList where whereClause;
dowork(x);
}
更新 - 只是总结一些建议,集中一切。
我不能使用开关来生成where子句,因为有很多可能性。
您已经发布了一些动态linq帖子看起来很有前途,但是我有麻烦将linq转换为sql示例到我的linq到对象问题。翻翻MSDN http://msdn.microsoft.com/en-us/library/bb353734.aspx我有麻烦搞清楚你的意思是使用AsQueryable已
感谢,
呃,没有。 where子句只是* not *一个字符串,它是一个返回布尔值的表达式。除......看到SLaks的链接! – sq33G 2012-01-03 21:22:54
@ sq33G在这种情况下的字符串将是“address.zip == 23456”我想用作表达式。该字符串来自用户输入,因此他们可以进行自定义搜索。那有意义吗? – kds6253 2012-01-03 21:25:32
我猜测用户正在从下拉菜单中选择字段(字段==值)。所以你可以使用switch语句来构建一个Func作为Where委托来发送。 –
sq33G
2012-01-03 21:29:08