我正在尝试创建一个 LINQ 语句,其中 where 子句来自变量。例如:
string whereClause = address.zip == 23456;
var x = from something in someList where whereClause;
这可能吗?我似乎无法让它发挥作用。
thanks,
更新 - 我的 where 子句是预定义的,并且将基于用户输入,所以我认为这对我不起作用。基本上,whereClause 不是在方法中构造的,它是执行 LINQ 的方法的参数。我没有解释清楚,这里有一个更好的例子:
public void doLnq(string whereClause)
{
var x = from something in someList where whereClause;
dowork(x);
}
更新 - 只是总结一些建议并集中所有内容。
我无法使用 switch 来生成 where 子句,因为有很多可能性。
你们中的一些人发布的动态 linq 帖子看起来确实很有希望,但我在将 linq to sql 示例与我的 linq to object 问题相关联时遇到了麻烦。
和 @sLaks 浏览完 msdn 后http://msdn.microsoft.com/en-us/library/bb353734.aspx http://msdn.microsoft.com/en-us/library/bb353734.aspx我无法弄清楚您打算在哪里使用 AsQueryable
thanks,
您需要组装一个Expression<Func<T, bool>>
并将其传递给Where()
扩展方法:
Expression<Func<T, bool>> whereClause = a => a.zip == 23456;
var x = frSomeList.Where(whereClause);
EDIT:如果您使用 LINQ to Objects,请删除该词Expression
创建一个普通委托。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)