Introduction of lambda expression and predicate builder

Post on 10-May-2015

641 views 2 download

Tags:

Transcript of Introduction of lambda expression and predicate builder

Introduction of Lambda Expression and Predicate BuilderBryan lin

2014/03/07

Agenda

• Lambda Expression

• PredicateBuilder

• Implementation of PredicateBuilder

Lambda expression

• What is a Lambda Expression?

• A lambda expression is an anonymous function and it is mostly used to create delegates in LINQ. Simply put, it's a method without a declaration, i.e., access modifier, return value declaration, and name.

Lambda expression

• Why do we need lambda expressions? (Why would we need to write a method without a name?)

• Convenience. It's a shorthand that allows you to write a method in the same place you are going to use it. Especially useful in places where a method is being used only once, and the method definition is short. It saves you the effort of declaring and writing a separate method to the containing class.

Lambda expression

• Benefits:

• Reduced typing. No need to specify the name of the function, its return type, and its access modifier.

• When reading the code you don't need to look elsewhere for the method's definition.

Lambda expression

• Lambda expressions should be short. A complex definition makes the calling code difficult to read.

Lambda expression

• How do we define a lambda expression? 

• Lambda basic definition: Parameters => Executed code.

PredicateBuilder

• Background

• Dynamic Predicate Construction

• You allow the user to pick, from a check box list, any of the fields that will be included in the query, and to specify the criteria

PredicateBuilder

PredicateBuilder

• Background

• Dynamic Predicate Construction

• You can do a bunch of switch-ing if logic to figure out what kind of query to render by adding a piece of it at a time

• Or you can use lambdas and the PredicateBuilder to inject multiple predicates into an expression tree

PredicateBuilder

• Using the Code

• To combine the two criteria below:

PredicateBuilder

• Using the Code

• Do with the PredcateBuilder:

PredicateBuilder

• Using the Code

• And then:

Implementation of PredicateBuilder

• Implmentation of and logic:

Implementation of PredicateBuilder

• Implementation of or logic:

FAQ