I usually say ‘such that’ when reading that operator.
In your example, p => p.Age > 16 reads as “P, such that p.Age is greater than 16.”
In fact, I asked this very question on the official linq pre-release forums, and Anders Hejlsberg responded by saying
I usually read the => operator as “becomes” or “for which”. For example,
Func f = x => x * 2;
Func test = c => c.City == “London”;
reads as “x becomes x * 2” and “c for which c.City equals London”
As far as ‘goes to’ – that’s never made sense to me. ‘p’ isn’t going anywhere.
In the case of reading code to someone, say, over the phone, then as long as they’re a fellow C# programmer, I’d just use the word ‘lambda’ – that is, “p lambda p dot age greater-than sixteen.”
In comments Steve Jessop mentioned ‘maps to’ in the case of transformations – so taking Anders’ example:
x => x * 2;
x maps to x times 2.
That does seem much closer to the actual intention of the code than ‘becomes’ for this case.