You've probably been wondering when some of the new technology features such as lambda expressions and extension methods will show up in my examples. Well, in a way, they already did. When you create LINQ queries using query expressions, the Visual Basic compiler converts what you type into code that uses extension methods and lambda expressions. You might remember from Chapter 9 that lambda expressions are themselves updated by the compiler into something simpler. Once your queries are broken down into subatomic particles, the CPU is ready to act.
But you don't have to start with full queries. You can create your own queries using extension methods and lambda expressions. The extended methods in question are attached to the
IEnumerable interface. This means that anything that looks like a collection or array can be involved in extension-method-based queries, using lambda expressions as the arguments.
Let's convert one of our earlier queries into its extension method counterpart.
Dim bigBooks = From bk In Library _ Where bk.Pages >= 1000
It's the query that returns only big books. The same query using extension methods looks like this:
Dim bigBooks = Library.Where(Function(bk) bk.Pages >= 1000)
In this example, the
Where method is actually an extension method of the
IEnumerable interface, which also includes
Min, and other methods that correspond to operators within the LINQ query language. As I discussed in Chapter 12 ...