如何在LINQ Where子句中使用If条件

时间:2013-12-03 10:18:54

标签: linq

我可以在Linq中使用if子句吗?

例如:我有一个有4个字段的表(Id,UserId,Type,Sing)。

我想选择记录userid为1,如果Type =“None”,则Sing应为True。

(from d in db.Receive
 where ((((d.SendType == "None") ? ((d.Signed) ? true : false) : true)) && userid==1)
 select d).ToList(); 

当我使用

((d.SendType == "None") ? ((d.Signed) ? true : false) : true)

选择记录如果Type =“None”,则Sing应为True。但是当添加用户条件时,不要返回任何记录。

3 个答案:

答案 0 :(得分:2)

不是更好:

from d in db.Receive
where ((d.SendType == "None" && d.Signed) || d.SendType != "None") && userid == 1)
select d 

答案 1 :(得分:0)

等等?

(((d.SendType == "None") && (userid == 1)) ? ((d.Signed) ? true : false) : true)

答案 2 :(得分:0)

那里有很多括号......如果我理解你正确使用了userid == 1,那么为什么不用呢

where (((d.SendType == "None" && userid == 1) ? ((d.Signed) ? true : false) : true)))
              select d).ToList();