如何在此linq语句中放置if else?
z <- readLines("file.txt")
y <- z[grep("^>", z, invert=TRUE)]
writeLines(y, "file.txt")
我想做点什么
where instruct.InstructorInstrNo == royalHIstory.RoyalIns.ToString()
我认为在使用lambda表达式时可以做类似的事情,但我的查询没有并且不确定如何将我的查询转换为只使用lambda表达式
答案 0 :(得分:4)
它被称为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")
答案 1 :(得分:3)
where instruct.InstructorInstrNo == ((royalHIstory.RoyalIns.ToString().Length == 3) ?
"0" + royalHIstory.RoyalIns.ToString() : royalHIstory.RoyalIns.ToString())
来自文档:
条件运算符(?:)根据需要返回两个值中的一个 布尔表达式的值。