2015-04-14 40 views
1

我想過濾以下SQL查詢格式的列表;如何篩選具有多個'和''或'條件的列表

SQL

SELECT * FROM Tracker 
where (TrackProposalID = 6 and TrackRequestID = 0) or TrackRequestID = 16 

的LINQ

我曾嘗試,但迄今爲止收到語法錯誤;

listT = CType(listT.Where(Function(o) (o.TrackProposalID = 6 And o.TrackRequestID = 0) or (o.TrackRequestID = 16)).ToList 
+1

是C#標籤真的需要嗎?在我看來,你想vb.net – Default

+0

是你的實際代碼行嗎?你的CType似乎沒有提供這種明顯的問題,並且讓我相信你的問題不能反映你的實際問題,或者你的實際問題只是一個錯字。 – Chris

回答

2
在C#

listT = listT.Where(o => (o.TrackProposalID == 6 && o.TrackRequestID == 0) || o.TrackRequestID == 16).ToList(); 
0
var newList = listT.Where(x=>(x.TrackProposalID == 6 && x.TrackRequestID == 0) || x.TrackRequestID == 16).ToList(); 
1

試試這個

listT = listT.Where(x=>(x.TrackProposalID == 6 && x.TrackRequestID == 0) || (x.TrackRequestID == 16).ToList(); 
0
var result = listT.Where(x => x.TrackRequestID == 16 || (x.TrackProposalID == 6 && x.TrackRequestID == 0)) 

,如果你不會讓ToList()。它會執行每個呼叫「結果」。所以我推薦使ToList()。