Who doesn’t want to build recursive lambda functions?
Func upChain = move =>
{
if (move.ChainParentId != null)
upChain(Coa.MoveRequests.Single(
m => m.Id == move.ChainParentId));
return move;
};should work (according to me), but it complains that the second upChain is an unassigned local variable.
And I don’t feel like rolling my own y-combinator.