I can do this:
Func<CategorySummary, decimal> orderByFunc;
if (orderBy == OrderProductsByProperty.Speed)
orderByFunc = x => x.Speed;
else
orderByFunc = x => x.Price;
Why can’t I do this:
Func<CategorySummary, decimal> orderByFunc = (orderBy == OrderProductsByProperty.Speed) ? x => x.Speed : x => x.Price;
The ‘type inference’ on the conditional operator is not quite good enough, I get a message like
you can always just be explicit on the right-hand-side, a la
In any case it’s just a minor annoyance regarding how the types of lambdas, type inference, and the conditional operator interact.