Hi!
Edit: I made a mistake in my original question. It should be about methods Last and LastOrDefault (or Single and SingleOrDefault, or First and FirstOrDefault - plenty of them!).
Inspired by this question, I opened Reflector and looked at code of
Enumerable.Last<T>(this collection)
Then I jumped to code of
Enumerable.LastOrDefault<T>(this collection)
and I saw exactly the same piece of code (about 20 lines) differing in only one last line (first method returns default(T), second throws exception).
My question is why it is so? Why guys in Microsoft allow duplication of non-trivial pieces of code inside .Net framework? Don't they have code review?