Почему Linq-выражение IL приводит к пропуску проекции Select, а соответствующее выражение метода сохраняет проекцию Select?
Я полагаю, что эти два куска кода делают одно и то же.
var a = from c in companies
where c.Length >10
select c;
//
var b = companies.Where(c => c.Length > 10).Select(c => c);
//IL - LINQ
IEnumerable<string> a = this.companies.
Where<string>(CS$<>9__CachedAnonymousMethodDelegate1);
//IL
IEnumerable<string> b = this.companies.Where<string>
(CS$<>9__CachedAnonymousMethodDelegate4).Select<string, string>
(CS$<>9__CachedAnonymousMethodDelegate5);
Тогда почему разница в IL?
EDITED : тогда почему
var a = from c in companies
select c;
результат в проекции SELECT даже внутри IL. ее также можно опустить, верно?