This is LINQ training material for our Senior Software Engineers.
This tutorial is in form of Visual Studio solution. The best way to use this tutorial is to clone this repository (or download zip) and read the materials from your Visual Studio.
The texts and code-samples are in the form of unit test projects so you can run and test those as you read.
The practice tasks can be solved by a line or two of code. But some of those are not easy as they test the theory that is written to this tutorial. Practice tasks are unit tests and you should be able to write the code to pass those test without modifying the tests.
The structure of this tutorial:
- Details of C# lists
- Extension methods
- Yield return
- Delegates, Func and lambdas
- Functions as parameters
- Expression trees
- Closure: Capturing variables
- Types and classes
- Generics and type parameters
- Some typical LINQ methods
- Monadic Bind: SelectMany
- Missing PatternMatching
- LINQ... extensions and yields?
- LINQ to my objects
- Fold: Aggregate
- Inside Aggregate: Accumulator and tail recursion
- Continuation
- Same LINQ, different monads
- Entity Framework in brief