01. Welcome
02. What will you learn in this course
03. Who is the course for and prerequisites
04. Why do we have LINQ
05. A language for querying data
06. A first LINQ example
07. Why would you want to use LINQ
08. Section recap
09. Introduction to our demo solution
10. Using a simple where clause
11. Refactoring statements into functions
12. Chaining multiple where clauses
13. Ordering data
14. Multi-level ordering
15. Using a custom comparer to order
16. Section recap
17. What is deferred execution in LINQ
18. Retrieving all results
19. Retrieving a single item
20. Projecting the data to another shape
21. Section recap
22. Introduction to getting partial results
23. Splitting results into chunks
24. Using Skip, Take and TakeWhile to retrieve a specific result
25. Dividing results into logical parts with GroupBy
26. Section recap
27. Introduction
28. Removing duplicates
29. Checking for a single item
30. Verifying all items
31. Using aggregate functions
32. Checking if 2 sequences are equal
33. Section recap
34. Introduction
35. Concatenate two results
36. Set operations on queries with the same type
37. Exploding a subquery with SelectMany
38. Join operations between 2 results
39. Section recap
40. Introduction
41. IQueryable vs IEnumerable
42. What can we write LINQ against
43. Making some IEnumerable methods ourselves
44. IQueryable behind the scenes
45. Section recap
46. Why would we want to parallelize our queries
47. Introduction to PLINQ
48. Things to consider when using PLINQ
49. Potential pitfalls
50. Section recap
51. Conclusion