2015-04-14 2 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().

Смежные вопросы