LINQ is very clever. The things that have been added to the languages to support LINQ are amazing but I'm still trying to work out whether (beyond the cleverness) I like LINQ. I spent a long time today trying to write a fairly simple LINQ query. Essentially, I've got two lots of data; var sales = new [] { new { Country= "UK" , Sales=100, ProductId=1 }, new { Country= "US" , Sales=50, ProductId=2 }, new { Country= "UK" , Sales=250, ProductId=1 }, new { Country= "UK" , Sales=1000, ProductId=2 } }; and var products = new [] { new { Id=1, Name= "Cheese" }, new { Id=2, Name= "Fish" } }; and all I'm wanting to do is join these 2 sets of data together on ProductId=Id and then produce a summary set of data which tells me; Country=UK, Product=Cheese, TotalSales=350 Country=UK, Product=Fish, TotalSales=1000 Country=US, Product=Fish, TotalSales=50 (hopefully I added those up right but you get the point regardless). It's very possible that I'm just completely dense but I spent a long time trying to figure out how to get this...