【发布时间】:2015-02-06 00:07:03
【问题描述】:
鉴于此代码:
dataSource = this.db.DailyProductionReportSummaries.Where(
x => x.ShiftDate >= start && x.ShiftDate <= end &&
x.Shift == (shift != null ? shift.Code : "SOMETHING ELSE") && //TODO: "SOMETHING ELSE" where it's not null
x.LineNumber == (shift != null ? lineNumber : 0) && //TODO: 0 where it's not null
x.ProductCode == (productNumber != 0 ? productNumber.ToString() : "SOMETHING ELSE") //TODO: "SOMETHING ELSE" where it's not null
).ToList();
我需要在每个标有“TODO”的三元组中说类似的内容(特别针对具有//TODO的第一行:
如果
shift中有东西,则返回 shift.Code 否则,返回“Something”,其计算结果为x.Shift == NOT NULL(或者更清楚地说,它计算结果为x.shift != null)
我只是在这里坚持一个愿望,还是需要继续将其扩展为一堆if 声明? (我正在尝试将多个 if 语句压缩成更紧凑且更适应更改配置的内容,而无需进行大量逻辑更改或重写...
【问题讨论】:
标签: c# lambda entity-framework-4