我如何在此linq语句中放置if?
where instruct.InstructorInstrNo == royalHIstory.RoyalIns.ToString()
我想做类似的事情
where instruct.InstructorInstrNo == if(royalHIstory.RoyalIns.ToString().Length == 3) "0" + royalHIstory.RoyalIns.ToString() else royalHIstory.RoyalIns.ToString()
我认为使用lambda表达式时可以完成类似的操作,但是我的查询没有,并且不确定如何将查询转换为只使用lambda表达式
最佳答案
它称为ternary operator或三元条件运算符(?:)
where instruct.InstructorInstrNo ==
(royalHIstory.RoyalIns.ToString().Length == 3
? "0" + royalHIstory.RoyalIns.ToString()
: royalHIstory.RoyalIns.ToString())
或者,使用PadLeft函数
where instruct.InstructorInstrNo == royalHIstory.RoyalIns.ToString().PadLeft(4, '0')
或简单地(假设RoyalIns是整数类型)
where instruct.InstructorInstrNo == royalHIstory.RoyalIns.ToString("0000")