我如何在此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")

10-08 02:18