在C#中使用三元运算符时,有时生成要求值的值的表达式可能会很长.有没有办法在一个结果表达式中获得它的值?
例如,如果我有一个三元表达式:
bool? foo = model.People.SingleOrDefault(x => x.Age > 21 && x.Name.StartsWith("Jo")) == null ? null : model.People.SingleOrDefault(x => x.Age > 21 && x.Name.StartsWith("Jo")).IsEnabled == "true";
有没有一种方法可以不必重复从第二个结果表达式中的列表中获取项的表达式?我能想到的唯一方法是添加额外的一行:
var item = model.People.SingleOrDefault(x => x.Age > 21 && x.Name.StartsWith("Jo"));
bool? foo = item == null ? null : item.IsEnabled == "true";
我已经读过了Microsoft docs,但看不到任何关于如何做到这一点的建议.我认为这目前是不可能的,这是一种耻辱!