В дополнение к ответу Джона Скита вы также можете использовать группу по выражениям для получения уникальных групп по w / count для каждой итерации групп:
var query = from e in doc.Elements("whatever")
group e by new { id = e.Key, val = e.Value } into g
select new { id = g.Key.id, val = g.Key.val, count = g.Count() };