简单来说,我想在某种情况下为一个变量赋一个字符串。我试图在一个全局变量中将if then语句放在linq语句的外部但是然后它运行if / then然后将字符串赋值给变量,然后将其打印出我的excel文件中的每一行产生的。
那么我该怎么做一个类似于这个
的陈述var status = "";
if(_db.Owners.Select(i => i.Item1) != null && _db.Owners.Select(i => i.Item2) == null)
{
status = "S";
}
到我的linq语句,看起来与此类似
return _db.Owners
.Select(owner => new
{
CustomerId = owner.Report.CustomerId,
IdType = status,//I want this statement to print that status S only where the statement is true
}
答案 0 :(得分:3)
我假设IdType
是一个字符串,如果该语句为false,则要为空。在这种情况下,您可以使用:
return _db.Owners
.Select(owner => new
{
CustomerId = owner.Report.CustomerId,
IdType = (owner.Item1 != null && owner.Item2 == null) ? "S": string.Empty,
}
<强>更新强> 如果要添加第二个案例,可以执行以下操作:
return _db.Owners
.Select(owner => new
{
CustomerId = owner.Report.CustomerId,
IdType = (owner.Item1 != null && owner.Item2 == null)
? "S" : ([second case condition] ? [value] : string.Empty),
}
答案 1 :(得分:1)
你可以使用(臭名昭着的)三元运算符?
new {
CustomerId = owner.Report.CustomerId,
IdType = yourTestExpressionFromTheIfAbove ? "S" : string.Empty
}
这就是你问的问题吗?您是否只想内联表达式并删除外部(临时)变量?
答案 2 :(得分:0)
我会做这样的事情:
return _db.Owners
.Select(owner => new
{
CustomerId = owner.Report.CustomerId,
IdType = owner.Item1 != null && owner.Item2 == null ? "S" : [your other value]
})
.ToList();
如果记录不符合您的条件,[您的其他值]是您想要的任何状态。