C# 带有linq的If和else语句
我试图在linq查询中使用if和else语句,但我无法显示正确的结果,下面您可以看到部分代码:C# 带有linq的If和else语句,c#,.net,linq,linq-to-sql,C#,.net,Linq,Linq To Sql,我试图在linq查询中使用if和else语句,但我无法显示正确的结果,下面您可以看到部分代码: from c in dc.Train_TBLs select new {c.CodeTrain, DBL1 = (from u in dc.Train_NormalRate_TBLs where u.CodeTrainID == c.CodeTrainID orderby u.NormalRateID ascending select u.DBL).First(), TPL1 = (from u in
from c in dc.Train_TBLs select new {c.CodeTrain,
DBL1 = (from u in dc.Train_NormalRate_TBLs where u.CodeTrainID == c.CodeTrainID orderby u.NormalRateID ascending select u.DBL).First(),
TPL1 = (from u in dc.Train_NormalRate_TBLs where u.CodeTrainID == c.CodeTrainID orderby u.NormalRateID ascending select u.TPL == (decimal?)null ? u.DBL / 2 * 3 == (decimal?)null : u.TPL != 0).First(),....}
在字段TPL1中,我的目的是显示“u.TPL”中的值是否等于“0”或null,然后将从字段“u.DBL”中取值除以2并乘以3,但我的代码不太走运,那么您对如何显示正确的结果有何建议。我想这就是您想要的:
select ((u.TPL ?? 0) == 0 ? u.DBL / 2 * 3 : u.TPL)
将上一次选择的替换为此
你说:
如果“u.TPL”中的值等于“0”或null,则将从字段“u.DBL”中取值,除以2,再乘以3
(u.TPL??0)=0
检查其u.TPL
是0还是空。如果是,则返回u.DBL/2*3
,否则返回u.TPL
本身。此代码仅在u.TPL
可为空(定义为decimal?
)我想这就是您想要的:
select ((u.TPL ?? 0) == 0 ? u.DBL / 2 * 3 : u.TPL)
将上一次选择的替换为此
你说:
如果“u.TPL”中的值等于“0”或null,则将从字段“u.DBL”中取值,除以2,再乘以3
(u.TPL??0)=0
检查其u.TPL
是0还是空。如果是,则返回u.DBL/2*3
,否则返回u.TPL
本身。只有当u.TPL
可为空(定义为decimal?
)时,此代码才起作用。您是否尝试将其还原为foreach循环并查看出现了什么问题?是否尝试将其还原为foreach循环并查看出现了什么问题?