Я знаю, что вы не можете возвращать анонимные типы из методов, но мне интересно, как метод расширения Select возвращает анонимный тип. Это просто уловка с компилятором?
Редактировать
Предположим, L - это список. Как это работает?
L.Select(s => new { Name = s })
Тип возврата - IEnumerable ‹'a> where' a = new {String Name}