C# 在Linq中放置If和Else
可能重复:C# 在Linq中放置If和Else,c#,linq,if-statement,C#,Linq,If Statement,可能重复: 我试图使用Linq运行查询,但在where子句之前,我想指定If条件,但我没有得到正确的语法(可能是),或者这是不可能的? 我搜索了很多,但他们在查询之前使用if和else,但我想在查询中使用if。 有没有可能像: var q = (from mortgageapplication in context.MortgageApplications if(mortgageapplication.purpose of loan==7) {
我试图使用Linq运行查询,但在where子句之前,我想指定If条件,但我没有得到正确的语法(可能是),或者这是不可能的? 我搜索了很多,但他们在查询之前使用if和else,但我想在查询中使用if。 有没有可能像:
var q = (from mortgageapplication in context.MortgageApplications
if(mortgageapplication.purpose of loan==7)
{
where mortgageapplication.MortgageActive == true && mortgageapplication.MortgageCoordinator==ID
}
我只是在尝试,但请告诉我是否可以将if置于where之前?此查询在逻辑上是等效的:
var loanPurpose = 7;
var coordinatorId = ...;
var query =
from app in context.MortgageApplications
where app.PurposeOfLoan != loanPurpose
|| (app.MortgageActive && app.MortgageCoordinator == coordinatorId)
select application;
逻辑如下,您只想检查它是否处于活动状态,是否由给定的协调器执行。否则就可以申请。问得好,但从一些想法来看:Linq语句的
部分的目的就是评估集合项目的条件。只要把它放在那里:where mortgageapplication.purposeofloan==7&&mortgageapplication.MortgageActive==true&&mortgageapplication.MortgageCoordinator==ID
这是我在条件满足时给出的不完整演示,然后在其中比较不同的日期。Loanpurpose可能有不同的值,就像在同一时间一样“2”或其他“7”,因此在where条件下,我可以根据贷款用途值比较不同字段。