我想做一個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