Mar*_*cus 3 c# conditional conditional-operator
说我有以下内容:
MyDate =
(db.MyTables.FirstOrDefault(x => x.MyID == idToFind).DateValue == DateTime.MinValue)
? DateTime.Now
: db.MyTables.FirstOrDefault(x => x.MyID == idToFind).DateValue
Run Code Online (Sandbox Code Playgroud)
如果没有运行两次LINQ查询,有没有办法做到这一点?
我不能先将它运行到temp变量中,因为这个查询本身就是一个更大的LINQ查询的一部分.
我不能先将它运行到temp变量中,因为这个查询本身就是一个更大的LINQ查询的一部分.
您可以let在查询中使用赋值(或者,如果您使用lambda语法,则可以使用包含辅助字段的投影 - 无论如何它都会被编译):
var query = from foo in db.Bar
let bar = db.MyTables.FirstOrDefault(x => x.MyID == idToFind).DateValue
select new
{
MyDate = bar == DateTime.MinValue ? DateTime.Now : bar
}
Run Code Online (Sandbox Code Playgroud)