I find the LINQ syntax easier to comprehend than the extension method syntax:
var data = from item in list group item by item.Key into gruppe from item in gruppe orderby gruppe.Key, item.Value select item;
Technically, you don't need to group them:
var data = from item in list orderby item.Key, item.Value select item;