Reimplementing LINQ to Objects: Part 45 – Conclusion and List of Posts

Table of Contents

You may consider it a little odd to have a list of posts as the final part in the series, but it makes sense when you consider that visiting the Edulinq tag page shows results in reverse chronological order. At that point, a newcomer will hopefully hit this post first, and then find it easier to navigate to the first post. Anyway…

  1. Introduction
  2. Where
  3. Select
  4. Range
  5. Empty
  6. Repeat
  7. Count and LongCount
  8. Concat
  9. SelectMany
  10. Any and All
  11. First, Single, Last and the …OrDefault versions
  12. DefaultIfEmpty
  13. Aggregate
  14. Distinct
  15. Union
  16. Intersect
  17. Except
  18. ToLookup
  19. Join
  20. ToList
  21. GroupBy
  22. GroupJoin
  23. Take, Skip, TakeWhile, SkipWhile
  24. ToArray
  25. ToDictionary
  26. Ordering:
  27. Reverse
  28. Sum
  29. Min and Max
  30. Average
  31. ElementAt and ElementAtOrDefault
  32. Contains
  33. Cast and OfType
  34. SequenceEqual
  35. Zip
  36. AsEnumerable
  37. Guiding principles
  38. What’s missing?
  39. Comparing implementations
  40. Optimization
  41. How query expressions work
  42. More optimization
  43. Out-of-process queries with IQueryable
  44. Aspects of design
  45. Conclusion and List of Posts

Thank you, and good night

When I started this series, I hadn’t realised quite how much there would be to write about. The main thrust was going to be that the implementation of LINQ is simple, and it’s the design that’s clever. As it happened, pretty much every operator ended up raising some interesting issue or other. However, hopefully the series has still "immersed" you in LINQ to Objects to some extent, and clarified how it all hangs together. It would be gratifying to think that the description at the start of each post may end up being used as a sort of "unofficial alternative documentation" with some more details than MSDN provides, but we’ll see whether than happens over time.

A number of people have asked me whether there’ll be an ebook version of this series, and the answer is currently "I don’t know." I have a few plans afoot, but I can’t tell where they’ll lead yet. Suffice to say I like the idea, and I’m looking at some options.

Anyway, thank you for reading as much of the series as you have, and I hope you’ve enjoyed it as much as I have.

Just in case you’re wondering, I’ll probably go back to posting about C# 5’s async support pretty soon…

17 thoughts on “Reimplementing LINQ to Objects: Part 45 – Conclusion and List of Posts”

  1. Fantastic series. I don’t get to play with C# very much these days, so these posts showing up in my RSS reader were quite exciting.

    Thanks for the read!

  2. Jon,

    Thanks for this amazing series and all the work you put into it.

    I consider myself an advanced user of LINQ-to-objects, and I still learned a lot from it.

    You’re an inspiration.

  3. @New Follower: Thanks, I’ll remove it – I suspect it’s not relevant any more to most people.

  4. Hey Jon, sorry for offtopic – but are you going to offer any promo coupons for your new tekpub cast? It’s just that that I always run into the situation that I buy something and then it gets some sort of discount, lol.

  5. @Mike: I don’t know what Tekpub usually does in the way of discounts… whether they ever do them, in fact. I’ll ask Rob next time I talk with him.

  6. Nice set of posts Jon! Haven’t yet scratched the surface but the depth is amazing. Reminds me of the (supposed) quote from someone who had spent a long ship journey hearing the details of relativity from Einstein. “Every day he explained his theory to me, and now I am convinced that *he* understands it.” :)

    Regards

    Mark

Comments are closed.