Различия в LINQ и Method expression

Почему 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. ее также можно опустить, верно?

6
задан Ashley John 29 September 2011 в 06:17
поделиться