allBlogsList

LINQ vs Lambda Expressions

I was wondering what the difference is, internally, between LINQ (query syntax) and Lambda Expressions (method syntax) and are there any performance difference? So I decided to create the same queries in both query syntax and method syntax. Then, I examine the compiled code.

LINQ

var subset = from type1 in ListOfType1
             where ListOfType2.Any(type2 => type2.ID.Equals(type1.ID))
             select type1

Lambda Expressions

var subset = ListOfType1
              .Where(type1 => ListOfType2.Any(type2 => type2.ID.Equals(type1.ID)));

Result

They both compile down to the same thing

IEnumerable<Type1> subset = 
   ListOfType1.Where<Type1>(delegate(Type1 type1) {
      return ListOfType2.Any<Type2>(type2 => type2.ID.Equals(type1.ID));
   });