C# Internals - Single and SingleOrDefault