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… Introduction Where Select Range Empty Repeat Count and LongCount Concat SelectMany Any and All First, Single, Last and the …OrDefault versions DefaultIfEmpty Aggregate Distinct Union Intersect Except ToLookup Join ToList GroupBy GroupJoin Take, Skip, TakeWhile, … Continue reading Reimplementing LINQ to Objects: Part 45 – Conclusion and List of Posts

Reimplementing LINQ to Objects: Part 44 – Aspects of Design

I promised a post on some questions of design that are raised by LINQ to Objects. I suspect that most of these have already been covered in other posts, but it may well be helpful to talk about them here too. This time I’ve thought about it particularly from the point of view of how other APIs can be built on some of the same design principles, and the awkward choices that LINQ has thrown up. The power of composability and immutability Perhaps the most important aspect of LINQ which I’d love other API designers to take on board is … Continue reading Reimplementing LINQ to Objects: Part 44 – Aspects of Design

Reimplementing LINQ to Objects: Part 43 – Out-of-process queries with IQueryable

I’ve been putting off writing about this for a while now, mostly because it’s such a huge topic. I’m not going to try to give more than a brief introduction to it here – don’t expect to be able to whip up your own LINQ to SQL implementation afterwards – but it’s worth at least having an idea of what happens when you use something like LINQ to SQL, NHibernate or the Entity Framework. Just as LINQ to Objects is primarily interested in IEnumerable<T> and the static Enumerable class, so out-of-process LINQ is primarily interested in IQueryable<T> and the static … Continue reading Reimplementing LINQ to Objects: Part 43 – Out-of-process queries with IQueryable

C# in Depth 2nd edition: now available in mobi/epub (Kindle) format

I’m not quite sure why this hasn’t been emailed to all existing owners, but the ebook of C# in Depth 2nd edition is now available in mobi and epub form, as well as PDF. You can download it from the Manning user account site. You need to have the existing ebook first, but if you have the hard copy there should be a voucher in the front which will let you get the ebook for free. (This should work wherever you bought the hard copy from; it doesn’t matter whether you originally ordered it from Manning or not.) If you … Continue reading C# in Depth 2nd edition: now available in mobi/epub (Kindle) format