Lambda Expressions

Back in Chapter 17 we mentioned that lambda expressions were created for use with LINQ, to create expressions that return a method instead of a single return value. The same query we’ve been using all along could be written like this with lambda expressions:

var resultsAuthor =
    bookList.Where(bookEval => bookEval.Author == "Jesse Liberty");

As we mentioned in the previous section, the keyword var lets the compiler infer that resultsAuthor is an IEnumerable collection. You can interpret this whole statement as “fill the IEnumerable collection resultsAuthor from the collection bookList with each member such that the Author property is equal to the string ‘Jesse Liberty’.”

The variable bookEval isn’t declared anywhere; it can be any valid name. The Boolean expression on the righthand side is projected onto the variable, which is passed to the Where method to use to evaluate the collection. This method syntax takes some getting used to, and it can be easier to use LINQ’s query syntax, but you should know how to use the alternative. This example is shown in Example 21-3.

Example 21-3. The LINQ method syntax uses lambda expressions to evaluate the data retrieved from the data source

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Example_21_3_ _ _ _Lambda_Expressions
{
    // simple book class
    public class Book
    {
        ...
    }

    class Program
    {
        static void Main(string[] args)
        {
            List<Book> bookList = new List<Book>
            {
                ...
            };

            // find books by Jesse Liberty
            var resultsAuthor =
                bookList.Where(bookEval =>
                      bookEval.Author == "Jesse Liberty");
            Console.WriteLine("Books by Jesse Liberty:");
            foreach (var testBook in resultsAuthor)
            {
                Console.WriteLine("{0}, by {1}",
                      testBook.Title, testBook.Author);
            }

        }
    }
}
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset