Ok, it's not weird really - I was just trying for an "attention grabbing headline" :-) However, it does seem to throw people when they play with it so I thought I'd break it down a little here. Say I've got some data such as; class Fruit { public string Name { get; set; } public string Type { get; set; } public decimal Price { get; set; } public int Quantity { get; set; } } Fruit[] data = new Fruit[] { new Fruit { Name= "Gala" , Type= "Apple" , Price=0.75m, Quantity=10 }, new Fruit { Name= "Granny Smith" , Type= "Apple" , Price=0.80m, Quantity=7 }, new Fruit { Name= "Tasty" , Type= "Strawberries" , Price=1.90m, Quantity=20 } }; and I want to group up by Type. This is easy enough to do; var grouped = from fruit in data group fruit by fruit.Type; but what the heck is grouped ? Well, it's (in my case) as GroupedEnumerable but that's not a public type so it doesn't help much. In many ways, it's much easier to figure out what's going on here when you look at this kind of query "long hand", for example; var grouped...